(双指针)leetcode 26、 27、203、283
来源:互联网 发布:原始地貌测量数据 编辑:程序博客网 时间:2024/06/03 20:45
26 Remove Duplicates from Sorted Array
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
For example,
Given input array nums = [1,1,2]
,
Your function should return length = 2
, with the first two elements of nums being 1
and 2
respectively. It doesn't matter what you leave beyond the new length.
class Solution {
public: int removeDuplicates(vector<int>& nums) { int n=nums.size(); if(n<2) return n; int count=1; for(int i=1;i<n;i++) { if(nums[i]!=nums[i-1]) nums[count++]=nums[i]; } return count; }};
27. Remove Element
Given an array and a value, remove all instances of that value in place and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
Example:
Given input array nums = [3,2,2,3]
, val = 3
Your function should return length = 2, with the first two elements of nums being 2.
class Solution {public: int removeElement(vector<int>& nums, int val) { int count=0; int n=nums.size(); if(n==0) return 0; for(int i=0;i<n;i++) { if(nums[i]!=val) nums[count++]=nums[i]; } return count; } };
203. Remove Linked List Elements
Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* removeElements(ListNode* head, int val) { if(head==NULL) return head; ListNode* pHead=head; ListNode* countNode=new ListNode(0); countNode->next=head; while(pHead!=NULL) { if(pHead->val!=val) { countNode=countNode->next; countNode->val=pHead->val; } pHead=pHead->next; } countNode->next=NULL; if(head->val==val) return NULL;//注意特殊情况,当元素全部是所给值的时候 return head; }};283. Move Zeroes
Given an array nums
, write a function to move all 0
's to the end of it while maintaining the relative order of the non-zero elements.
For example, given nums = [0, 1, 0, 3, 12]
, after calling your function, nums
should be [1, 3, 12, 0, 0]
.
Note:
- You must do this in-place without making a copy of the array.
- Minimize the total number of operations.
class Solution {public: void moveZeroes(vector<int>& nums) { int n=nums.size(); if(n==0) return ; int count=0; for(int i=0;i<n;i++) { if(nums[i]!=0) nums[count++]=nums[i]; } while(count<n) nums[count++]=0; }};
- (双指针)leetcode 26、 27、203、283
- LeetCode|【双指针】
- 双指针-Leetcode
- Leetcode双指针16
- leetcode ---双指针+滑动窗口
- LeetCode之双指针(1)
- LeetCode之双指针(2)
- LeetCode之双指针(3)
- C实现 LeetCode->Partition List(双指针大法)(单链表)
- [leetcode]单链表类题目总结(应用双指针)
- 双指针,前后指针法, 快排思路, leetcode
- leetcode 287. Find the Duplicate Number 双指针 + 快慢指针
- [Leetcode][双指针/多指针]相关题目汇总/分析/总结
- LeetCode:Valid Palindrome双指针 java版
- LeetCode 之双指针 two pointers
- leetcode Minimum Size Subarray Sum 双指针
- LeetCode-75-Sort Colors(双指针)-Medium
- LeetCode 双指针+hash表方法
- jQuery实现在一个输入框按回车键后光标跳到下一个输入框
- 百度地图画多边形代码
- angularjs的实时调用服务 $interval
- 自认为理想的 Android 学习图书阅读路线
- 实现从Excel中导入数据,并将导入的身高体重按性别在图形中以不同颜色区分
- (双指针)leetcode 26、 27、203、283
- angularjs 自定义服务
- UI框架(里面的东西非常全面)
- 题目1445:How Many Tables 九度OJ
- 【C++学习笔记】宽字符(LPCWTR/wstring)和(char*/string)的转换实现
- 杭电1029 之 Ignatius and the Princess IV
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 32-35: ordinal not in range(12
- openglesForC++矩形旋转
- 集合框架-Collections