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

货代去什么网站开发客户bing搜索引擎国内版

货代去什么网站开发客户,bing搜索引擎国内版,推广目标怎么写,门户网站开展集约化建设的情况目录 一、力扣——283、移动零 二、力扣——1089、复写零 三、力扣——11、盛最多的水 四、力扣——202、快乐数 一、力扣——283、移动零 题目如下: 这里我们用双指针算法,用的是双指针的思想,我们在这道题在数组下操作可以用数组下标。…

目录

一、力扣——283、移动零

二、力扣——1089、复写零

三、力扣——11、盛最多的水

四、力扣——202、快乐数


一、力扣——283、移动零

题目如下:

这里我们用双指针算法,用的是双指针的思想,我们在这道题在数组下操作可以用数组下标。

我们让fast先走,当遇到非0元素,将slow和fast所指向的位置互换,slow++

具体流程如下:

代码如下:

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

二、力扣——1089、复写零

题目如下:

该题让我们遇到值为0的元素在该元素的下一个位置复写一个0,且复写操作不能超过该数组的长度。

 我们这道题也用双指针的思想,在数组上用数组的下标进行操作

如果我们将两个指针从前往后遍历肯定是不行的,在复写0的时候会进行覆盖

如图,在dest复写操作的时候,本应该在数组里值为2被0覆盖了,导致无法找到这个值,所以我们不能从前往后遍历,那我们试着从后往前遍历呢。

当我们我们从后往前遍历是一样的,但是我们可以先找到在模拟完成复写操作的时候,cur所指向位置在哪,然后再往前一个个复写

找到最后一个“复写”的数

  1. 先判断cur的值
  2. 非0dest走一步,0dest走两步
  3. 判断一下dest是否已经到结束为止
  4. cur++

接着从后往前遍历,cur和dest指向的是模拟完复写完指向的位置。

具体操作如下:

从后往前完成复写操作

  1. 判断arr[cur]是否为0
  2. 非0,arr[dest--] = arr[cur--],为0,arr[dest--] = 0 arr[dest--] = 0 这就完成了一次复写 最后cur再--

这样就已经完成了复写零的操作,但这里有一个特殊

这里dest值超过了数组的大小,在从后往前复写操作arr[dest--]操作会有越界操作,所以这个情况我们单独处理

我们让dest-=2,且arr[n-1]置为0,cur再--

再继续完成复写操作

整体逻辑如上

代码如下:

class Solution {
public:void duplicateZeros(vector<int>& arr) {int cur = 0,dest = -1;int n = arr.size();while(dest < n){if(arr[cur]) //1、判断cur位置的值,决定dest移动的步数{dest++;}else {dest += 2;}if(dest >= n-1)  break;   //2、判断一下dest是否已经到结束cur++;}//特殊情况if(dest == n){arr[n-1] = 0;dest -= 2;cur--;}while(dest >= 0){if(arr[cur]) arr[dest--] = arr[cur--];else {arr[dest--] = 0;arr[dest--] = 0;cur--;}}}
};

三、力扣——11、盛最多的水

题目如下:

看到这道题,我们可能都会用暴力解法, 用两个for循环

int max = 0;
int cnt = 0;
for(int i = 0; i < num.size(); i++)
{for(int j = i; j < num.size(); j++){cnt = std::min(nums[i],nums[j]) * (j - i);max = std::max(max,cnt);}
}

这个算法的时间复杂度是O(N^2)。并且这道题会判定超时。

接下来给大家讲解简便的算法。

我们这还是用双指针的思想

这道题如果要盛最多的水

  1. 我们在y轴要尽可能找大的值,在左右两个指针指向的值找到最小的,因为如果大于这个最小的值,水就溢出了。
  2.  在x轴上left和right的距离要尽可能地大,这样盛的水就能更多。

在这道题我们left和right指针相向运动,对比left和right所指向值的大小,如果left>right,right就--,如果right>left,left就++,这样遍历整个数组,我们把每一个left和right所指向的值计算出水的容积记录下来,用max函数不断更新这个最大容器的值就可以

代码如下:

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

四、力扣——202、快乐数

题目如下:

如题目解析这样,这个数一直重复图上的过程直到这个数变为1,那么这个数就是一个快乐数,也有可能是无限循环但始终变不到1,这里就画出了这两个情况的图

判断是快乐是很简单,一直执行这个过程,最后也会形成一个1->1->1的死循环。

这个无限循环但始终变不到1的情况:我们可以抽象的看做成一个环,我们看到上面的图,如果这个数一直执行这个操作,最后有可能等于原来这个环中的数,说明一直死循环,这个数就不可能是个快乐数。

那这个判断是不是个快乐数的问题就被我们转换成判断这样重复的操作,会不会成一个环。

在以前循环队列里面讲过,我们定义两个指针,slow指针一次走一步,fast指针一次走两步,如果fast==slow,就说明这是个环,这个数就不是个快乐数。


接下来我们开始写代码,先写一个函数,这个函数模拟平方相加的操作。

int Calculate(int n){int sum = 0;while(n){int t = n % 10;sum += t*t;n /= 10;}return sum;}

我们按照上面的逻辑,定义快慢指针,用while循环条件是(slow !=fast),slow一次执行一步,fast一次执行2步。

最后结束循环的结果是slow==fast,我们判断这个数是不是快乐数直接return slow==1;就可以了。

如果slow==1 说明这个数最后一直进入了1->1->1的死循环,如果不等于1就说明进入了我们讲的第二种条件的死循环。

完整代码如下:

#include <cmath>
class Solution {
public:int Calculate(int n){int sum = 0;while(n){int t = n % 10;sum += t*t;n /= 10;}return sum;}bool isHappy(int n) {int fast = Calculate(n); //快指针int slow = n;//慢指针//n代表慢指针while(slow != fast){slow = Calculate(slow);fast = Calculate(fast);fast = Calculate(fast);}return slow == 1;}
};

这里有个细节就是我们先让fast往后走一步,如果fast和slow都=n的话,那么就不会进入while这个循环!

http://www.dtcms.com/wzjs/435315.html

相关文章:

  • 人力资源劳务派遣公司百度地图优化
  • 常州规划网站百度网盘app手机版
  • 网站建设实施方案现在广告行业好做吗
  • 深圳网站建设方案优化360搜索推广
  • 网站建设英文参考文献seo竞价培训
  • 提供网站建设管理郑州疫情最新消息
  • 是先做网站还是先备案创意营销点子
  • 营销型网站设计内容搜狗网址导航
  • 龙岗网搜索引擎排名优化包括哪些方面
  • 网站建设公司在哪里找资源网络推广的方法和技巧
  • 网站logo设计标准怎样才能在百度上面做广告宣传
  • 昆明住房和城乡建设局网站北京网站优化方案
  • 驻马店阿里巴巴做网站如何做好品牌推广工作
  • 沈阳做网站优化的公司竞价外包推广专业公司
  • 创意福州网站建设网站建设报价
  • 网站开发公司人员配置影视后期哪个培训靠谱
  • 柳州网站seo爱站网站长seo综合查询
  • 双十一最新消息网站排名优化软件联系方式
  • 对我国政府网站建设和管理的现状seo性能优化
  • 怎么自己做淘宝网站吗软文范例大全200字
  • 上海做高端网站建设网站优化关键词排名
  • 重庆招聘58同城惠州抖音seo策划
  • 用织梦模板怎么做动态网站南宁网站seo大概多少钱
  • 泉州seo搜索优化合作逆冬seo
  • 打电话拉客户用网站做广告怎么做 好做吗网络营销服务
  • 个人网站建设怎么赚钱网络公司起名
  • 做垃圾词影响网站排名吗网站群发推广软件
  • 公司网站建设建议平面设计正规培训机构
  • 公司电商网站建设方案模板优化疫情二十条措施
  • 关于网站开发所需的知识刷网站百度关键词软件