1773
1.switch-case记得要break
2.“The type of the expression must be an array type but it resolved to List”
数组(Array) vs 列表(ArrayList)
Array([]):最高效;但是其容量固定且无法动态改变;
ArrayList(get): 容量可动态增长;但牺牲效率;
1470
交替可看成奇偶
1486
位运算:
异或略称为XOR、EOR、EX-OR
1702
异或特性: a^b=c --> a^c=b
237
有点像脑筋急转弯
class Solution {
public void deleteNode(ListNode node) {
node.val=node.next.val;
node.next=node.next.next;
}
}
LCP 06
int 整除
1603
1678
replace处理的结果需要接收。
注意字符是用单引号括起来的。
1684
用26位的int[]或转换成HashSet解决
1313
用列表做然后转成数组或者先获取数组长度然后再往里添加
1389
上一题用的是ArrayList,这题主要是插入所以用LinkedList.(同样的插入操作ArrayList似乎更快??)
用List似乎时长都会长很多,而建立数组进行操作反而时长比较短,建立数组的话用递归实现以下move
1365
基数排序、桶排序,注意0的情况
class Solution {
public int[] smallerNumbersThanCurrent(int[] nums) {
int[] tong=new int[101];
for(int i:nums)
tong[i]++;
for(int i=1;i<101;i++)
tong[i]+=tong[i-1];
for(int i=0;i<nums.length;i++)
nums[i]=nums[i]==0?0:tong[nums[i]-1];
return nums;
}
}
1662
可以用流拼接,也可以直接用String的join
1614
题目描述过于复杂哈哈,还以为要用栈,结果就一层递归就行了
1266
没有特别复杂的算法,按个求差的最大值就行。
注意用到了最大值函数Math.max()和绝对值函数Math.abs()
int res=0;
for(int i = 1;i<points.length;i++)
res+=Math.max(Math.abs(points[i][1]-points[i-1][1]),
Math.abs(points[i][0]-points[i-1][0]));
1342
普通判断也行,用位运算也行
1295
int转String用length或直接if-else分区间处理
1732
递归
这些都是简单题,接下来会做点难的