问题列表 - 第4315页

PHP数组 - 删除重复项(时间复杂度)

好的,这不是"如何获得所有唯一身份"或"如何从我的数组中删除重复项"的问题.这是一个关于时间复杂性的问题.

我认为array_unique有点O(n ^ 2 - n),这是我的实现:

function array_unique2($array) 
{ 
    $to_return = array(); 
    $current_index = 0;

    for ( $i = 0 ; $i < count($array); $i++ ) 
    { 
        $current_is_unique = true; 

        for ( $a = $i+1; $a < count($array); $a++ ) 
        { 
            if ( $array[$i] == $array[$a] ) 
            { 
                $current_is_unique = false; 
                break; 
            } 
        } 
        if ( $current_is_unique ) 
        { 
            $to_return[$current_index] = $array[$i];
        } 

    } 

    return $to_return; 
}
Run Code Online (Sandbox Code Playgroud)

然而,当array_unique我对这个基准测试得到以下结果:

测试(array_unique2)...操作耗时0.52146291732788 s.

测试(array_unique)...操作耗时0.28323101997375 s.

这使得array_unique的速度提高了一倍,我的问题是,为什么(两者都有相同的随机数据)?

我的一个朋友写了以下内容:

function array_unique2($a) …
Run Code Online (Sandbox Code Playgroud)

php algorithm time-complexity

11
推荐指数
2
解决办法
5597
查看次数

Java错误或功能?

好的,这是代码,然后讨论如下:

public class FlatArrayList {

    private static ArrayList<TestWrapperObject> probModel = new ArrayList<TestWrapperObject>();

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int [] currentRow = new int[10];

        int counter = 0;

        while (true) {

          for (int i = 0; i < 10; i++) {
            currentRow[i] = probModel.size();
          }

          TestWrapperObject currentWO = new TestWrapperObject(currentRow);

          probModel.add(counter, currentWO);

          TestWrapperObject testWO = probModel.get(counter);
          // System.out.println(testWO);

          counter++;

          if (probModel.size() == 10) break;

       }

       // Output the whole ArrayList …
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
324
查看次数

如何创建和访问在C#中作为参数传递的匿名类的新实例?

我创建了一个函数,它接受一个SQL命令并生成输出,然后可以用它来填充类实例的List.代码效果很好.我在这里提供了一个稍微简化的版本,没有异常处理仅供参考 - 如果您想直接解决问题,请跳过此代码.如果你在这里有建议,我会全力以赴.

    public List<T> ReturnList<T>() where T : new()
    {
        List<T> fdList = new List<T>();
        myCommand.CommandText = QueryString;
        SqlDataReader nwReader = myCommand.ExecuteReader();
        Type objectType = typeof (T);
        FieldInfo[] typeFields = objectType.GetFields();
        while (nwReader.Read())
        {
            T obj = new T();
            foreach (FieldInfo info in typeFields)
            {
                for (int i = 0; i < nwReader.FieldCount; i++)
                {
                    if (info.Name == nwReader.GetName(i))
                    {
                        info.SetValue(obj, nwReader[i]);
                        break;
                    }
                }
            }
            fdList.Add(obj);
        }
        nwReader.Close();
        return fdList;
    }
Run Code Online (Sandbox Code Playgroud)

正如我所说,这很好用.但是,出于显而易见的原因,我希望能够使用匿名类调用类似的函数.

问题1:似乎我必须在调用此函数的匿名版本时构造一个匿名类实例 - 这是对的吗?一个示例电话是: …

c# reflection anonymous-types

10
推荐指数
1
解决办法
7531
查看次数

使用Codeigniter与Paypal集成相关的指南

我需要一些与PayPal集成相关的指导.它与普通购物车不相似.结账后,该网站提供付款方式选项.无论是PayPal,还是其他一些付款流程.用户提交后,表单将指向控制器.存在一个数组,其中包含所有项值.

从这里开始我如何进入Pay​​pal网站?

codeigniter paypal

12
推荐指数
2
解决办法
9757
查看次数

我该如何计算出这种复杂的递归算法呢?

我刚刚开始用Java教授数据结构和算法.到目前为止,我在生活中只学过C++,所以我对使用java仍然很新.

无论如何我有一个功课问题我有点困惑:

写一个递归方法,返回N的二进制表示中的1的数量.如果N是奇数,则使用这个等于N/2 + 1表示中1的数量的事实.

现在我不确定如何做到这一点.我已经有一个函数设置,它接受一个整数并将其转换为二进制并将其存储在一个字符串中,但其余的我有点迷失.

如果我能得到一些指导,那真的会有所帮助.

这是我到目前为止:

import java.io.*;
public class Homework1Code {
  static void prtbinary(String Molly, int size){
    if(size <=0){
      return;
    }
  }

  public static void main(String[] args) {
    int i = 38;
    String binstr = Integer.toBinaryString(i);
    System.out.println("The Original Decimal Number is: " + binstr);
    prtbinary(binstr, binstr.length());
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java binary recursion

1
推荐指数
2
解决办法
4103
查看次数

像PHP中的重载一样?

我想完成这样的事情:调用一个方法,说"转",然后对不同的数据类型进行不同的"转向",例如,用"螺丝刀"对象调用"turn"/ param使用"turnScrewdriver" "方法,用"steeringWheel"对象/ param调用"turn"使用"turnSteeringWheel"方法等等 - 正在做不同的事情,但它们都被称为"转向".

我想实现这一点,以便调用代码不必担心涉及的类型.在这个例子中,"转弯"应该足以"转动""螺丝刀","steeringWheel"或任何可能需要"转动"的东西.

在C++中,我会通过重载执行此操作 - 并且C++会根据数据类型/签名对事物进行排序 - 但这在PHP中不起作用.

有关我应该从哪里开始的任何建议?switch语句很明显,但我认为必须有一个(更优雅的)OO解决方案.没有?

TIA

php oop overloading

3
推荐指数
1
解决办法
324
查看次数

用C++创建文件

我想用C++创建一个文件,但我不知道该怎么做.例如,我想创建一个名为的文本文件Hello.txt.

谁能帮我?

c++ file-io

61
推荐指数
3
解决办法
25万
查看次数

访问iframe中的表单

我正在尝试访问表单及其元素.表单位于iframe中,访问表单的javascript代码位于主文档中.

我不确定我还应该提出什么问题,所以如果我需要添加其他内容,请告诉我.

(表单和主页位于同一个域中)

谢谢

javascript forms iframe

10
推荐指数
1
解决办法
2万
查看次数

散列中'character'和'octet'之间的区别

我看到术语"八位"在文学弹出约随机数的散列,它似乎是"性格"的代名词,虽然一种模式的话是如何使用的.

这让我相信两者之间存在正式的区别.如果有人能够告诉我它是什么,我会很感激.

(请不要,关于八进制字符代码或八进制(基数8)数字的讲座;我在谈论名词 '八位字节',而不是形容词)

编辑:事实证明,我正在寻找的词是"八位字节".

hash character salt character-encoding octal

7
推荐指数
2
解决办法
3596
查看次数

如何在PHP中获取目录大小

function foldersize($path) {
  $total_size = 0;
  $files = scandir($path);

  foreach($files as $t) {
    if (is_dir(rtrim($path, '/') . '/' . $t)) {
      if ($t<>"." && $t<>"..") {
          $size = foldersize(rtrim($path, '/') . '/' . $t);

          $total_size += $size;
      }
    } else {
      $size = filesize(rtrim($path, '/') . '/' . $t);
      $total_size += $size;
    }
  }
  return $total_size;
}

function format_size($size) {
  $mod = 1024;
  $units = explode(' ','B KB MB GB TB PB');
  for ($i = 0; $size > $mod; $i++) …
Run Code Online (Sandbox Code Playgroud)

php filesystems

54
推荐指数
9
解决办法
9万
查看次数