LeetCode感想

来源:互联网 发布:平板电脑能做淘宝店吗 编辑:程序博客网 时间:2024/06/02 05:17

既然是做题,就要读懂题意,利用题中所给的设定,不然就会增大复杂度


数组类

常见解法:
1.利用数组值做下标链到本数组或新数组,本数组就加length模length,数组值有负数可以通过max-min,index-min转化为正数。一般用于找缺哪些数值。
2.利用map,set判断某些值是否已经存在,存在的次数
3.如果直接二次遍历,相当于二次遍历的每次遍历都是独立的,没有给下一次遍历提供信息。一般都可以转为一次遍历,创建几个变量来记录每次循环获得的信息。
边界:数组为空时;注意不要数组越界;

String类

首先要熟悉各种相关API。
StringBuffer sb ,sb.reverse() == sb(true),因为sb.reverse返回的是sb对象的引用,只是内容变了。
char[] 是没有indexOf()的,String.indexOf()参数可以是一个字符串,也可以是一个字符。s.indexOf("c", 3)从s[3]开始往后查找c
Character.toLowerCase(char),char 是没有这个功能的,因为他就不是一个对象,是没有方法的,String.toLowerCase()
new String(char[]);1+new String(char[]);
String.split(" ")只是按照空格把原字符串分割,并不是去掉了所有空格,比如“     ”会分为“ ” ,“ ”,“ ”
边界:字符串为空串时;

空间换时间,利用信息反馈节省时间,比如求1到n中的素数的个数,如果遍历判断那么就是O(n乘根号n),可以开辟一个n长的数组,从2向后遍历,对i的倍数进行非素数记录,利用信息的反馈减少了时间
原创粉丝点击