Algorithm
-
What 从有序数组中删除重复项
-
How 用快慢指针来记录遍历的坐标,最开始时两个指针都指向第一个数字,如果两个指针指的数字相同,则快指针向前走一步,如果不同,则两个指针都向前走一步,这样当快指针走完整个数组后,慢指针当前的坐标加1就是数组中不同数字的个数。
-
Key Codes
class Solution {
public int removeDuplicates(int[] nums) {
if(nums.length == 0){return 0;}
int sum=0,i;
for(i=0;i<nums.length;i++){
if(nums[sum]!=nums[i]){
nums[++sum] = nums[i];
}
}
return sum+1;
}
}
Review
-
What 创业公司金字塔
-
How 首先你要达到product market fit,判断创业公司是否达到的方法很多。
这是其中一种:问你的用户“如果你不能再用我的产品了,你会很失望吗?” 如果40%以上的用户回答“非常非常失望”,那就 fit 了。
Tip
-
What SQL数据去重及row_number()
-
How
select*
from(select *,row_number() over (partitionby tran_idorder by timestamp asc) num from table) t
wheret.num=1;
分析:意思是先根据tran_id进行分组,并在分组内部按timestamp降序排序,row_number()函数计算的值就表示某个tran_id组内部排序后的顺序编号(该编号在一个组内是连续并且唯一的)。所以最后直接去每个分组内的第一个(num=1)即可。