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

网站推广方式介绍营销型网站制作成都

网站推广方式介绍,营销型网站制作成都,湖北省住房和城乡建设厅,深圳市住房和建设局局长代码随想录二刷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.hkea.cn/news/400397/

相关文章:

  • 专门做特价的网站优化排名案例
  • 网站建设的一些问题友链交易交易平台
  • 创业初期要建立公司的网站吗seo排名优化代理
  • 做网站全屏尺寸是多少钱站长工具查询系统
  • 做企业平台的网站有哪些手机网站制作教程
  • 免费行情的软件大全下载北京公司排名seo
  • 网站联系方式要素qq群推广链接
  • div css 网站模板免费的云服务器有哪些
  • 35互联做网站好吗网店运营工作内容
  • 网站建设模拟软件营销培训课程内容
  • 深圳建网站兴田德润专业2023年最新新闻简短摘抄
  • 学校网站怎么查询录取百度相册登录入口
  • 自助建设彩票网站网址查询工具
  • 怎么创建网页的快捷方式seo入门版
  • 互联网企业网站网络优化
  • 山东手工活外发加工网四川二级站seo整站优化排名
  • 行业门户网站开发百度竞价怎么做效果好
  • 适合前端做项目的网站百度网盘搜索
  • 下载网站怎么下载广州网站定制多少钱
  • 西安攻略旅游自由行怎么玩北京seo软件
  • 汉川网站建设sem代运营
  • 装酷网装修平台东莞seo外包
  • 专门做图片的网站吗如何建网站要什么条件
  • 卢氏县住房和城乡建设局网站站长统计 站长统计
  • 济南 网站制作旺道营销软件
  • 新上线网站如何做搜索引擎站长素材网站
  • 做网站编辑深圳疫情防控最新消息
  • PHP网站开发项目式教程google下载手机版
  • 国外专门用于做网站图片的做网站要多少钱
  • 网站维护费用计入什么科目媒介星软文平台官网