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

工信部网站备案电话网络营销如何进行

工信部网站备案电话,网络营销如何进行,宣传片制作协议,阿里云搭建个人博客wordpress代码随想录二刷day01704. 二分查找27. 移除元素977. 有序数组的平方704. 二分查找 题目链接 做这种题最好现在纸上写一写,如果在大脑中想,可能一会就晕了。 二刷的时候发现了一个新的知识点 即: >>的作用 二分法第二种写法&#xff1a…

代码随想录二刷day01

      • 704. 二分查找
      • 27. 移除元素
      • 977. 有序数组的平方

704. 二分查找

题目链接
做这种题最好现在纸上写一写,如果在大脑中想,可能一会就晕了。 二刷的时候发现了一个新的知识点 即: >>的作用
二分法第二种写法:左闭右开[left, right)

  • left <=right 时没有意义
  • if (nums[middle] > target) right 要赋值为 middle ,因为当前这个nums[middle]一定不是target
  • if (nums[middle] < target) left 要赋值为 middle ,因为当前这个nums[middle]一定不是target
class Solution {
public:int search(vector<int>& nums, int target) {int left = 0;int right = nums.size(); // 定义target在左闭右开的区间里,即:[left, right)while (left < right) { // 因为left == right的时候,在[left, right)是无效的空间,所以使用 <int middle = left + ((right - left) >> 1);if (nums[middle] > target) {right = middle; // target 在左区间,在[left, middle)中} else if (nums[middle] < target) {left = middle + 1; // target 在右区间,在[middle + 1, right)中} else { // nums[middle] == targetreturn middle; // 数组中找到目标值,直接返回下标}}// 未找到目标值return -1;}
};

int middle = left + ((right - left) >> 1) 相当于 int middle = left + ((right - left) / 2)
举个小栗子

>>: 二进制右移
举个例子: 1010 >> 1 == 0101
1010 十进制 10
0101 十进制 5
综上 >> 1 作用相当于除二

所以 left + ((right -left) >> 1) ==> left + ((right -left)/2)

为什么不直接用(left + right) /2 而用left + ((right -left) >> 1)
答: 是因为left + right 在某种情况下可能会超过基本类型所能容纳的最大值,而且 >> (位运算) 比 / 运算要快一点。

27. 移除元素

题目链接
解题思路: 双指针(快慢指针法) 一快一慢。

本题中:

  • 快指针 是用来获取新数组中的元素;
  • 慢指针是用来获取新数组中需要更新的位置。
// 时间复杂度:O(n)
// 空间复杂度:O(1)
class Solution {
public:int removeElement(vector<int>& nums, int val) {int slowIndex = 0;for(int fastIndex = 0; fastIndex < nums.size();fastIndex++){if(val != nums[fastIndex]){nums[slowIndex++] = nums[fastIndex];}}return slowIndex;}
};

注:数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。


977. 有序数组的平方

题目链接
注:本题中给出的数组是有序的,则最大值应该在两端,不可能在中间。
采用双指针,从两边向中间就行遍历,并比较大小,将大的放在右端。
i 指向 起始位置,j指向终止位置

class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {int k = nums.size() - 1;vector<int> result(nums.size(),0);for(int i = 0,j = nums.size() - 1 ;i <= j ; ){if((nums[i] * nums[i]) > (nums[j] * nums[j])){result[k--] = nums[i] *nums[i];i++;}else{result[k--] = nums[j] * nums[j];j-- ;}}return result; //最终返回排序好的平方和数组}
};

最终返回排序好的平方和数组。

http://www.yayakq.cn/news/875637/

相关文章:

  • 沈阳网页建站模板大连建设工程设计院有限公司网站
  • 合肥做网站哪家好网站禁ping
  • 焦作网站开发公司电话晋中网站建设公司
  • 万网建设网站的步骤地推网推平台
  • 王牌网站做代理免费一键生成名片
  • 佛山市南海区城乡建设局网站网站建设怎设计
  • 整形网站开发注册建设网站的公司网站
  • 网站试用模块深圳企业电话黄页
  • 最个人网站网站开发需要什么开发工具
  • 怎样把网站提交到百度node.js 做网站
  • 农林牧渔行业网站建设做网站设计需要哪些软件
  • 网站建设与运营未来发展女生适合前端还是后端
  • 手机网站模板演示自学网官方网站入口
  • 微信支付 网站备案枣庄住房和城乡建设厅网站
  • 拥有响应式网站pc端网站模型建设工具
  • 个人网站备案icp响应式网站展示型
  • 多媒体教学网站开发的一般步骤wordpress下载网站
  • 17z一起做网站广州windows中建wordpress
  • 如何创建一个论坛网站ie浏览器官方网址入口
  • 株洲高端网站建设工作室深圳网站建设的公司招聘
  • 广州网站建设有哪些网站策划书网站需求分析
  • 哪一些网站使用vue做的女性购物平台排行榜
  • 如何判断网站是响应式的还是快速刷排名seo软件
  • html网站建设心得体会网站先做前端还是后台
  • html在线编写网站linux上部署wordpress
  • 广州做网站多少钱广东网站优化
  • 做网站感想网站开发英语英语
  • 现在网站开发用什么语言住房建设网站
  • 重庆网站APP东莞建站模板
  • 吴忠公司做网站WordPress静态文件生成