![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组
沙扬娜拉的裙裾
刚刚步入计算机大军的小草虚心请教
展开
-
数组-leetcode#31-下一个排列
class Solution {public: void nextPermutation(vector<int>& nums) { if(nums.empty()) return; int i=nums.size()-2; while(i>=0){ if(nums[i]<nums[i+1]) break; i--; } if(i>=.原创 2020-09-03 14:25:39 · 85 阅读 · 0 评论 -
数组-leetcode#27-原地移出元素
class Solution {public: int removeElement(vector<int>& nums, int val) { if(nums.empty()||nums.size()==0) return 0; int i=0;//i之前都排好了, for(int j=0;j<nums.size();j++){//移动j,把不等于val的元素放到i中,i++ if(nums[j]!=val){ .原创 2020-09-03 14:06:32 · 76 阅读 · 0 评论 -
leetcode#26-删除排序数组中的重复项
class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.empty()||nums.size()==0) return 0; int i=0; int j=0; while(i<nums.size()){ if(nums[i]==nums[j]) i++;//重复元素跳过 else{ .原创 2020-09-03 14:01:58 · 85 阅读 · 0 评论 -
leetcode#57-插入区间
class Solution {public: vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) { vector<vector<int>> res; if(newInterval.size()<=0) return intervals;.原创 2020-08-20 23:57:06 · 120 阅读 · 0 评论 -
解码序列-真实面试题
vector<string> numDecodingsList(string s) { vector<string> dp; vector<string> dp_pre;//一开始为空,等到for执行1次就有了 if(s.length()<=0) return dp; if(s[0]-'0'>=1 && s[0]-'0'<=26){ dp.push_.原创 2020-08-19 11:36:57 · 104 阅读 · 0 评论 -
数组&排序-leetcode#56-合并区间
class Solution {public: vector<vector<int>> merge(vector<vector<int>>& intervals) { vector<vector<int>> res; if(intervals.size()<=0) return res; sort(intervals.begin(),intervals.end().原创 2020-08-17 00:11:16 · 115 阅读 · 0 评论 -
数组-leetcode#34-二分查找确定左右边界
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> res; if(nums.size()<=0) {res.push_back(-1);res.push_back(-1);return res;} int left = leftsearch(nums,targ.原创 2020-08-16 21:51:59 · 418 阅读 · 0 评论 -
数组&二分查找-leetcode#33-搜索旋转排序数组
class Solution {public: int search(vector<int>& nums, int target) { if(nums.size()<=0) return -1; int index=0; while(index<nums.size()-1){ if(nums[index+1]<nums[index]) break; in.原创 2020-08-15 20:06:16 · 103 阅读 · 0 评论 -
数组-leetcode#18-四个数求和等于target的所有组合
class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>> res; if(nums.size()<=1) return res; sort(nums.begin(),nums.end()); for(int i.原创 2020-08-15 15:32:33 · 375 阅读 · 0 评论 -
数组-leetcode#16-找出三个数之和与目标最接近的组合
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { if(nums.size()<=0) return 0; sort(nums.begin(),nums.end()); int res=nums[0]+nums[1]+nums[2]; for(int i=0;i<nums.size();i++){.原创 2020-08-15 14:57:14 · 957 阅读 · 0 评论 -
数组-leetcode#15-找出三个数之和等于0的所有不重复序列
class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res; if(nums.size()<=0) return res; sort(nums.begin(),nums.end());//先排序 for(int i=0;i&l.原创 2020-08-15 12:13:18 · 459 阅读 · 0 评论 -
数组-leetcode#4-两个升序数组的中位数
class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int m = nums1.size(); int n = nums2.size(); if((m+n)%2==1) return find_k(nums1,nums2,(m+n+1)/2); .原创 2020-07-28 19:29:32 · 246 阅读 · 0 评论 -
数组-leetcode#128-最长连续序列
class Solution {public: int longestConsecutive(vector<int>& nums) { if(nums.size()==0) return 0; sort(nums.begin(),nums.end()); int max_len=1; int cur_len=1; for(int i=1;i<nums.size();i++){ .原创 2020-09-13 18:55:54 · 97 阅读 · 0 评论 -
双指针-leetcode#11-盛水最大容器
class Solution {public: int maxArea(vector<int>& height) {//双指针 if(height.size()<=1) return 0; int max_area=0; int left = 0,right = height.size()-1; while(left<right){ int cur_area = min(hei.原创 2020-07-28 16:20:37 · 131 阅读 · 0 评论 -
贪心算法-leetcode#45-最少跳跃步数
class Solution {public: int jump(vector<int>& nums) { //每一跳选择,下一条可达位置最远的那一个。 if(nums.size()==0) return 0; int step=0; for(int i=0;i<nums.size();i++){ nums[i]+=i;//当前i可达的最大下标 } int i=0; while(i<nums..原创 2020-07-28 15:47:21 · 781 阅读 · 0 评论 -
数组-leetcode#55-跳跃游戏
class Solution {public: unordered_map<int,bool> map; bool canJump(vector<int>& nums) { if(nums.empty()) return true; int max_len=0; for(int i=0;i<nums.size();i++){ if(i<=max_len){//只有当前可达最.原创 2020-07-28 13:52:23 · 109 阅读 · 0 评论 -
数组-leetcode#275-最高引用次数H
class Solution {public: int hIndex(vector<int>& citations) { if(citations.empty()) return 0; int n = citations.size(); int h= 0; sort(citations.begin(),citations.end()); for(int i=0;i<n;i++){//遍历数组.原创 2020-07-28 12:17:21 · 138 阅读 · 0 评论 -
数组-leetcode#118-杨辉三角
class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> res; if(numRows<=0) return res; vector<int> one={1}; res.push_back(one); for(int i=2;i&l.原创 2020-07-28 11:11:37 · 73 阅读 · 0 评论 -
数组-leetcode#134-加油站
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { if(gas.empty()||cost.empty()) return -1; if(check(gas,cost)) return 0; if(gas.size()!=cost.size()) return -1; int len = gas.size(); ..原创 2020-07-28 10:36:59 · 91 阅读 · 0 评论 -
数组-leetcode#41-缺失的第一个正数
class Solution {public: int firstMissingPositive(vector<int>& nums) { if(nums.empty()) return 1; unordered_map<int,bool> map; for(int i=0;i<nums.size();i++){ map[nums[i]]=true; } .原创 2020-07-27 23:38:31 · 103 阅读 · 0 评论 -
数组-leetcode#189-旋转数组
class Solution {public: void rotate(vector<int>& nums, int k) { if(k%nums.size()==0||nums.empty()) return; k = k%nums.size(); vector<int> nums_new(nums); for(int i=nums.size()-k,j=0;i<nums.size().原创 2020-07-27 22:43:31 · 135 阅读 · 0 评论 -
数组-leetcode#80-删除数组中重复两次以上的数字
class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.empty()||nums.size()==0) return 0; int i=0;//i用来标记当前已经排好的位置 int count = 0;//用于计数, for(int j=1;j<nums.size();j++){ if(nu.原创 2020-07-27 22:21:19 · 244 阅读 · 0 评论