小编Mar*_*oun的帖子

找到要翻转的位数,以便在数组中获得最大值1

我们有一个像下面这样的阵列

{1 0 1 0 0 1 0 1}
Run Code Online (Sandbox Code Playgroud)

上面数组中的位数是8

如果我们取范围,[1,5]则范围内的位数[1,5][0 1 0 0 1].
如果我们翻转这个范围,那么在翻转后它将是[ 1 0 1 1 0]
翻转[1,5]范围后的总数为1[1 1 0 1 1 0 0 1] = 5

如果我们取范围,[1,6]那么[1,6]范围内的位数是[0 1 0 0 1 0].
如果我们翻转这个范围,那么在翻转之后它将是[ 1 0 1 1 0 1]
翻转[1,5]范围后的总数为1[1 1 0 1 1 0 1 1] = 6

所以答案是范围[1,6],翻转后我们可以获得6个1的数组

有没有一个好的算法可以解决这个问题.我只想到动态编程,因为这个问题可以分解为可以组合的子问题.

algorithm bit-manipulation dynamic-programming

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

向HTML元素添加额外属性是不好的做法吗?

有时我会为某些控件添加一个属性.喜欢:

<a href id="myLlink" isClimber="True">Chris Sharma</a>
Run Code Online (Sandbox Code Playgroud)

我知道这不是一个有效的HTML.但它在某些情况下对我有帮助.

这被认为是一种不好的做法吗?我的一位朋友说,它适用于Intranet环境,但在互联网上可能不会被搜索引擎发现友好.

如果这不是一个好习惯,那么最佳实践是什么?

谢谢

html attributes custom-attributes

18
推荐指数
2
解决办法
6068
查看次数

unique_ptr VS auto_ptr

可能重复:
std :: auto_ptr到std :: unique_ptr有
哪些C++智能指针实现可用?

让我说我有这个struct:

struct bar 
{ 

};
Run Code Online (Sandbox Code Playgroud)

当我像这样使用auto_ptr:

void foo() 
{ 
   auto_ptr<bar> myFirstBar = new bar; 
   if( ) 
   { 
     auto_ptr<bar> mySecondBar = myFirstBar; 
   } 
}
Run Code Online (Sandbox Code Playgroud)

然后在auto_ptr<bar> mySecondBar = myFirstBar;C++中将所有权从myFirstBar传输到mySecondBar,并且没有编译错误.

但是当我使用unique_ptr而不是auto_ptr时,我得到编译器错误.为什么C++不允许这样?这两个智能指针之间的主要区别是什么?什么时候需要用什么?

c++ smart-pointers c++11

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

为什么布尔数据类型需要8位?

布尔数据类型仅计算为truefalse,因此它总是只占用一位内存.那么为什么需要额外的7位内存,这不是浪费内存吗?

java

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

游泳池什么时候改变?

我有两个问题:

public static void main(String[] args) {
  String s1 = "bla";
  String s2 = "b" +"l" + "a";
  String s3 = "b".concat("l").concat("a");

  if(s1 == s2) 
        System.out.println("Equal");
  else
        System.out.println("Not equal");
  if(s1 == s3) 
        System.out.println("Equal");
  else
        System.out.println("Not equal");
}
Run Code Online (Sandbox Code Playgroud)
  • 为什么s1s2指向同一个对象,而s1s3不?(没有使用new关键字).

  • 如果我从用户那里得到一个字符串并将以下代码添加到上面的代码中:

    BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
    String name=in.readLine();
    if(name.equals("test"))
        s1 = s1 + "xyz";
    
    Run Code Online (Sandbox Code Playgroud)

    如果用户输入xyz程序将打印Not equal,当用户输入另一个程序输出时Equal.这是否意味着池通过执行整个程序而改变?优化器是否在编译时工作runtime继续在

java string pool

17
推荐指数
2
解决办法
820
查看次数

java.util.regex.PatternSyntaxException:索引附近的正则表达式模式中的语法错误

分裂到下面的代码

String s = "12+12";
String[] sr = s.split("+");
Run Code Online (Sandbox Code Playgroud)

我在logcat中收到此错误

09-03 15:57:22.489: E/AndroidRuntime(22029): FATAL EXCEPTION: main
09-03 15:57:22.489: E/AndroidRuntime(22029): java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1:
09-03 15:57:22.489: E/AndroidRuntime(22029): +
09-03 15:57:22.489: E/AndroidRuntime(22029):  ^
09-03 15:57:22.489: E/AndroidRuntime(22029):    at java.util.regex.Pattern.compileImpl(Native Method)
09-03 15:57:22.489: E/AndroidRuntime(22029):    at java.util.regex.Pattern.compile(Pattern.java:407)
09-03 15:57:22.489: E/AndroidRuntime(22029):    at java.util.regex.Pattern.<init>(Pattern.java:390)
09-03 15:57:22.489: E/AndroidRuntime(22029):    at java.util.regex.Pattern.compile(Pattern.java:381)
09-03 15:57:22.489: E/AndroidRuntime(22029):    at java.lang.String.split(String.java:1832)
09-03 15:57:22.489: E/AndroidRuntime(22029):    at java.lang.String.split(String.java:1813)
09-03 15:57:22.489: E/AndroidRuntime(22029):    at net.telivo.fiestacancun.ui.calllog.CallLogDetailsFragment$1.onClick(CallLogDetailsFragment.java:171)
    09-03 15:57:22.489: E/AndroidRuntime(22029):    at android.view.View.performClick(View.java:4240)
09-03 15:57:22.489: E/AndroidRuntime(22029): …
Run Code Online (Sandbox Code Playgroud)

java regex android

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

是否可以区分存储在同一整数数组中的字符和整数?

我的代码是

int array[] = {'a',98};
for(int num:array) {
    System.out.println(num);
}
Run Code Online (Sandbox Code Playgroud)

如果我打印这个,我会得到o/p为97 98.

如果我打印(char) num那么o/p将是ab.

是否可以将数组打印为98?我的猜测是,数组将存储数组元素的整数值,这是不可能的.但是这里的解决方案呢

java

16
推荐指数
4
解决办法
1661
查看次数

为什么调用一个不接受带参数的参数的函数在C中编译但在C++中不编译

假设我有这个功能:

void func() {}
Run Code Online (Sandbox Code Playgroud)

当我func使用某些参数(例如func(132))调用时,C++编译器会产生错误,而C编译器则不会.

在这种情况下,两个编译器之间有什么区别?C++这个错误产生了哪些优点/缺点?

c c++ gcc g++

15
推荐指数
2
解决办法
663
查看次数

PYQT4 - 如何编译qrc文件并将其导入我的程序?

我在导入资源文件时遇到问题.我正在使用pyqt4和猴子工作室,我正在尝试导入一个png图像.当我运行程序时,我得到一个导入错误,如

ImportError:没有名为icon_rc的模块

我知道我必须使用pyrcc4编译它但我不明白如何做这个可以任何人帮助请.有一个答案可以完全解释如何编译资源文件以便我可以导入它,这将非常有帮助.

python pyqt resource-files pyqt4

15
推荐指数
3
解决办法
4万
查看次数

隐式类型转换不适用于方法参数?

请考虑以下代码段:

class TypeCast{
  public static void main(String[] args){
    byte by = 4;     //compiler casts int literal to byte

    doCasting(4);    //Compilation Error: external type casting is required. WHY ?

  }

  public static void doCasting(byte by){

  }

}
Run Code Online (Sandbox Code Playgroud)

我认为上面的代码片段是不言自明的.在对int字体进行文字赋值时byte,编译器会自动执行所需的强制转换.当我们调用byte带有int literal参数的方法时,同样的事情不会发生.为什么?

java casting

15
推荐指数
1
解决办法
1013
查看次数