ru如何制作网站,wordpress中英文标题,建设协会官方网站,重庆建筑信息网查询1. 题意
给定一个重复数组#xff0c;删除其中的重复项目。
2. 题解
双指针 一个指针指向有序不重复数组的最后一个数#xff0c;另外一个数遍历整个数组#xff0c;若两个指针对应用的数不相同#xff0c;有序数组的指针右移#xff0c;将数填入。
代码一
class Sol…1. 题意
给定一个重复数组删除其中的重复项目。
2. 题解
双指针 一个指针指向有序不重复数组的最后一个数另外一个数遍历整个数组若两个指针对应用的数不相同有序数组的指针右移将数填入。
代码一
class Solution {
public:int removeDuplicates(vectorint nums) {int sz nums.size();int cnt 0;for (int i 1;i sz; i) {if (nums[i] ! nums[cnt]) {nums[cnt] nums[i];}}return cnt 1;}
};通解 只要 n u m s [ l e n − 1 ] ≠ n u m s [ j ] nums[len - 1]\ne nums[j] nums[len−1]nums[j] 就需要将 n u m s [ j ] nums[j] nums[j]给放入有序数组。推广一下如果相同的数不超过 k k k个就只需要 n u m s [ l e n − k ] ≠ n u m s [ j ] nums[len - k] \ne nums[j] nums[len−k]nums[j]。
class Solution {
public:int removeDuplicates(vectorint nums) {int sz nums.size();int cnt 1;for (int i 1;i sz; i) {if (nums[i] ! nums[cnt - 1]) {nums[cnt] nums[i];}}return cnt;}
};