LeetCode75:颜色分类
题目描述: 方法1:单指针,两次循环,第一次把0移到前面,第二次把1移到前面 class Solution { public: void sortColors(vector<int>& nums) { int n = nums.size(); int pos
题目描述: 方法1:单指针,两次循环,第一次把0移到前面,第二次把1移到前面 class Solution { public: void sortColors(vector<int>& nums) { int n = nums.size(); int pos
题目描述: 重点:与两数之和不同,两数之和只用返回一个下标组合,三数之和是返回所有元素组合,且不重复 方法1:使用双指针,对数组排序后,i 从0遍历到 n-3,左指针是 i+1,右指针是 n-1,然后记得去重 如果nums[i]大于0,返回结果 如果nums[i] + nums[left]大于0,遍
题目描述: 方法1:用一个新数组存最后 k 个数字,然后把最后 k 个数字之前的数字依次向后移动 k 位,最后把新数组中数组存回原数组头部 class Solution { public: void rotate(vector<int>& nums, int k) { vec
方法1:双指针,快指针遍历数组,慢指针表示新数组数组最后一个元素的下标位置 class Solution { public: int removeDuplicates(vector<int>& nums) { int slow = 0, fast = 1; w
方法1: 双指针不断遍历nums1和nums2数组,不断把结果放入新数组中,最后把新数组赋值给nums1 class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
题目描述: 方法1:暴力搜索,两个for循环 class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int min = INT_MAX; for(int i=0
题目描述: 方法1:直接平方,然后排序 class Solution { public: vector<int> sortedSquares(vector<int>& nums) { for(int i=0;i<nums.size();i++){ nu
题目描述: 方法1:使用双指针,快慢指针,慢指针用于将所有不等于val的元素前移,fast指针用于寻找每个不等于val的元素 class Solution { public: int removeElement(vector<int>& nums, int val) { in
题目描述:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 方法1:使用unordered_set class Solution { public: ListNode *detectCycle(ListNode *head) {
题目描述:给你一个链表的头节点 head ,判断链表中是否有环。 方法1:慢指针每次移动一步,快指针每次移动两步,如果有环最后一定会相遇 class Solution { public: bool hasCycle(ListNode *head) { if(!head ||