算法--2023.1.22
1.力扣287--寻找重复数
class Solution {
//环形链表2的变形:数组游标是指针,数组中的元素值是该节点指向下一个节点的指针
//该问题可以转化为找到环的入口
public int findDuplicate(int[] nums) {
int fast = nums[0], slow = nums[0];
//快慢指针判断有换并找到第一次相遇的位置
while(nums[fast]!=0){
slow = nums[slow];
fast = nums[nums[fast]];
if(slow == fast){
break;
}
//System.out.println(fast);
}
//一个指针从头出发,另一个指针从相遇位置出发找到环的入口
int head = nums[0];
while(head!=fast){
head = nums[head];
fast = nums[fast];
}
return head;
}
}
2.力扣300--最长递增子序列
理想主义的花终将在现实中绽放

浙公网安备 33010602011771号