第一幕:刷题(10:00 - 11: 00)11:00 - 11: 30摸鱼
题目1 middle 【中等】
给你一个有序数组 nums
,请你删除重复出现的元素,使得出现次数超过两次的元素只出现k次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须修改输入数组 并在使用 O(1) 额外空间的条件下完成。
int removeDuplicates(vector<int>& nums,int k) {
int n = nums.size();
if(n <= k) return n;
int fast = k;
int slow = k;
while(fast < n){
if(nums[slow - k] != nums[fast]){
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
};
其中,slow指针表示已经处理过的数组的长度,fast指针表示已经检查过的数组的长度,当nums[slow-k] == nums[fast],由于我的0~slow是不存在超过k个重复元素的处理过的数组,那么此时就会出现nums[slow-k] == nums[slow-k-1] == nums[slow-k-2] ... ==nums[fast],此时我们不保留我们的nums[fast]元素。
题目二 买股票的最佳时机2(画图可以解决一些看起来很复杂的问题)【中等】
题目三 找众数(空间复杂度为1,如果count == 0则更换candadite) 【中等】
第二幕:写万恶的算法大作业(14:00 - 17:00)
第三幕:准备明天组会的东西(19:00 - 21:30)[17:30 - 19:00 都在摸鱼],对不起我太会摸鱼了
重新读了一篇关于chatGPT公平性推荐的论文,写成了ppt准备汇报,感觉可以把里面的敏感词填写换成供应商,将供应商换成敏感词放里面跑
TranE的i2i与c2c模型跑了5000轮,明天记录一下NDCG,RECALL和MRR的值,rank和evaluate还不是很懂,明天在debug一下。
美好的一天要在21:30之前下班!!!