MySQL
Python
Java
-
运算符的优先级
-
stack结构中的判空问题:
stack != null
和stack.size > 0
的区别:stack != null
是判断栈是否初始化(或者说是否创建了栈?)stack.size > 0
是判断栈里是否有内容- 它们的区别,就像“有没有钱包”和“钱包里有没有钱”的区别
-
Scanner中nextLine()的使用问题:
我发现在while
循环中使用nextLine()
,首次可以输入,后续直接把输入跳过了。
原来nextLine()
会接收回车作为输入,所以你还没真正输入,它就已经接收一个回车继续执行
了。
解决方法:一进入while
循环就传入System.in
初始化Scanner
。
参考 -
递归的内存机制
-
递归的时候要慎用自增自减。我在用递归写快排的时候,一开始是这样写的:
sort(arr, low, l--);
产生了栈溢出。要改成sort(arr, low, l-1);
或sort(arr, low, --l);
才行
另外,递归不能自身调用太多次。比如快排这个程序,在极端情况下,即初始序列完全逆序,数据量小的时候还能正常运行,数据量大的时候就会栈溢出报错。我觉得就是因为自身调用太多次,反复在栈里面创建方法,导致栈溢出。
总之,慎用递归。