当前位置: 首页 > wzjs >正文

西安东郊做网站百度首页广告

西安东郊做网站,百度首页广告,如何开发一个直播平台,天眼查企业查询系统官网一、移动零 双指针,一个cur,一个dest 两个指针的作用: cur:从左往右扫描数组,遍历数组 dest:已处理的区间内,非零元素的最后一个位置 三个区间:[ 0, dest ] [ dest 1, cur - 1 …

一、移动零

双指针,一个cur,一个dest

两个指针的作用:

cur:从左往右扫描数组,遍历数组

dest:已处理的区间内,非零元素的最后一个位置

三个区间:[ 0, dest ] [ dest + 1, cur - 1 ] [ cur, n - 1 ]

class Solution {
public:void moveZeroes(vector<int>& nums) {int cur = 0, dest = 0;int n = nums.size();while(cur < n){if(nums[cur] != 0)swap(nums[dest++], nums[cur]);cur++;}}
};

2、复写零

思路: 

class Solution {
public:void duplicateZeros(vector<int>& arr) {int dest = -1, cur = 0, n = arr.size();// 从左往右while(cur < n){if(arr[cur]) dest++;else dest+=2;if(dest >= n-1) break;cur++;}// 处理边界情况if(dest == n){arr[n-1] = 0;cur--;dest-=2;}// 从右往左while(cur >= 0){if(arr[cur])    {arr[dest--] = arr[cur--];}else{cur--;arr[dest--] = 0;arr[dest--] = 0;}}}
};

3、快乐数

思路: 

class Solution {
public:int _isHappy(int n) {int ret = 0;while (n) {int m = n % 10;ret += pow(m, 2);n /= 10;}return ret;}bool isHappy(int n) {int low = n, fast = n;low = _isHappy(low);fast = _isHappy(fast);fast = _isHappy(fast);while (fast != low) {low = _isHappy(low);fast = _isHappy(fast);fast = _isHappy(fast);}if (fast == 1)return true;elsereturn false;}
};

4、盛水最多的容器

思路: 

 

class Solution {
public:int maxArea(vector<int>& height) {int left = 0, right = height.size()-1;int maxA = 0, area = 0;while(left < right){area = (right-left)*(min(height[left], height[right]));if(maxA < area) maxA = area;if(height[left] > height[right]) right--;else left++;}return maxA;}
};

5、有效三角形的个数

思路: 

 

class Solution {
public:int triangleNumber(vector<int>& nums) {// 先排序sort(nums.begin(), nums.end());// 排序完成int n = nums.size(), c = n - 1;int sum = 0;while (c >= 2) {int left = 0, right = c - 1;while (left < right) {if (nums[left] + nums[right] > nums[c]) {sum += (right - left);right--;} elseleft++;}c--;}return sum;}
};

6、和为s的两个数

思路: 

 

class Solution {
public:vector<int> twoSum(vector<int>& price, int target) {int left = 0, right = price.size()-1;vector<int> retv;while(left < right){if(price[left] + price[right] > target) right--;else if(price[left] + price[right] < target) left++;else {retv.push_back(price[left]);retv.push_back(price[right]);break;}}return retv;}
};

7、三数之和

思路:  

class Solution {
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> vv;// 1.先排序sort(nums.begin(), nums.end());// 2.固定一个数int i = 0, n = nums.size();while (i < n-1) {int left = i + 1, right = n - 1;int val = -nums[i];while (left < right) {if (nums[left] + nums[right] > val)right--;else if (nums[left] + nums[right] < val)left++;else {vector<int> v;v.push_back(nums[left]);v.push_back(nums[right]);v.push_back(-val);while (nums[left] == nums[++left] && left < right);         // 去重while (nums[right] == nums[--right] && left < right);       // 去重vv.push_back(v);}}while(nums[i] == nums[++i] && i < n-1);     // 去重,i < n-1,避免越界}return vv;}
};

8、四数之和

思路:  

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>> vv;// 1.排序sort(nums.begin(), nums.end());// 排序完成,开始操作int n = nums.size();for(int i = 0; i < n; ){// 固定bfor(int j = i+1; j < n;){long long arm = (long long)target - nums[i] - nums[j];int left = j+1, right = n-1;while(left < right){int sum = nums[left] + nums[right];if(sum < arm) left++;else if(sum > arm) right--;else{vv.push_back({nums[i], nums[j], nums[left], nums[right]});// 开始去重 left rightleft++;while(left < right && nums[left] == nums[left-1]) left++;right--;while(left < right && nums[right] == nums[right+1]) right--;}}// 去重 jj++;while(j < n && nums[j] == nums[j-1]) j++;}// 去重 ii++;while(i < n && nums[i] == nums[i-1]) i++;}return vv;}
};// 第二种变形
class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>> vv;// 1.排序sort(nums.begin(), nums.end());// 排序完成,开始操作// 固定aint a = 0, n = nums.size();while (a < n - 1) {// 固定bint b = a + 1;while (b < n - 1) {int left = b + 1, right = n - 1;long long val = (long long)target - nums[a] - nums[b];while (left < right) {if (nums[left] + nums[right] > val)right--;else if (nums[left] + nums[right] < val)left++;else {vv.push_back({nums[a], nums[b], nums[left], nums[right]});// 去重 left rightwhile (nums[left] == nums[++left] && left < right);while (nums[right] == nums[--right] && left < right);}}// 去重 bwhile (nums[b] == nums[++b] && b < n - 1);}// 去重 awhile (nums[a] == nums[++a] && a < n - 1);}return vv;}
};
http://www.dtcms.com/wzjs/376248.html

相关文章:

  • 燕郊建设局网站网络推广策划方案怎么写
  • 门户网站建设的报价成人技能培训班有哪些
  • 网站报名怎么做核心关键词举例
  • 网页制作与网站建设完全学习手册楚雄百度推广电话
  • 苏州美丽乡村建设网站百度指数是什么意思
  • 无锡市建设局一号通网站免费二级域名生成网站
  • 自己的网站做防伪码百度推广方式
  • 网页访问wordpress网站关键词优化的步骤和过程
  • 网站建设培训班软文投稿平台有哪些
  • 有什么做设计接任务的网站网页自助建站
  • 网站页面策划网站维护
  • 南通给公司做网站的河北百度推广电话
  • 合肥做网站web0551手机google官网注册账号入口
  • 做医采官方网站百度权重1
  • 贵州省建设厅网站造价工程信息网免费推广的平台都有哪些
  • 枣庄建设路小学网站关键词优化快速
  • 建站快车帮助新媒体运营怎么自学
  • 网站建设公司生存常用的搜索引擎有
  • 学校网站群建设全搜网
  • app推广一手单平台合肥seo优化排名公司
  • 新手做网站视频教程网站排名优化公司哪家好
  • 学ps网课平台哪个好seo短视频
  • 日本做h动漫电影网站有哪些网站策划方案书
  • 如何做公证网站网页发布时间企业网站推广渠道
  • 哪些公司做网站比较好论坛企业推广
  • 自己做动漫头像的网站海淀区seo搜索引擎优化企业
  • 深圳网站建设 乐云践新怎么做网络营销
  • wordpress 代码 视频seo排名的方法
  • 提交网站收录电商培训机构需要什么资质
  • 网站开发计入管理费用哪个明细宁波专业seo外包