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

企业网站开发需求文档池州网站设计

企业网站开发需求文档,池州网站设计,湖南网架加工厂家,百度收录网站标题📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…

📝前言说明:

  • 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分
  • 每题主要记录:(1)本人解法 + 本人屎山代码;(2)优质解法 + 优质代码;(3)精益求精,更好的解法和独特的思想(如果有的话)
  • 文章中的理解仅为个人理解。如有错误,感谢纠错

🎬个人简介:努力学习ing
📋本专栏:C++刷题专栏
📋其他专栏:C语言入门基础,python入门基础,C++学习笔记,Linux
🎀CSDN主页 愚润泽

视频

  • 69. x 的平方根
    • 个人解
  • 35. 搜索插入位置
    • 个人解
  • 852. 山脉数组的峰顶索引
    • 个人解
  • 162. 寻找峰值
    • 个人解
  • 153. 寻找旋转排序数组中的最小值
    • 个人解
    • 优质解
  • LCR 173. 点名
    • 个人解


69. x 的平方根

在这里插入图片描述

个人解

思路:

  • 确定答案区间:[0, min(x, 46341)](46341 是 2^31 - 1 的平方根 + 1)
  • 问题转换成:找平方 <= x 的右端点(因为题目向下取整)
  • mid选取判断:因为向下取整,left = mid会死循环

用时:
屎山代码:

class Solution {
public:int mySqrt(int x) {int left = 0, right = min(x, 46341);while(left < right) {unsigned int mid = left + (right - left + 1) / 2;if(mid * mid <= x)left = mid;elseright = mid - 1;}return left;}
};

时间复杂度:O(n)
空间复杂度:O(1)


35. 搜索插入位置

在这里插入图片描述

个人解

思路:

  • 题目意思:有target就返回target,没有就返回 >target 的第一个位置
  • 总结一下:就是返回 >= target 的第一个位置
  • 细节处理:模拟三种情况:1,正常找到target或者正常在数组中间插入;2,全部值都小于target;3,全部值都大于target(在这道题中要特殊处理全小于target的情况)

用时:5:00
屎山代码:

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1;while(left < right){int mid = left + (right - left) / 2;if(nums[mid] < target)left = mid + 1;elseright = mid;}// 特殊处理全小于target的情况if(nums[right] >= target)return right;elsereturn nums.size();}
};

时间复杂度:O(logN)
空间复杂度:O(1)


852. 山脉数组的峰顶索引

在这里插入图片描述

个人解

思路:

  • 二段性:每次和右边的数比较
  • 右边的数不存在 / 右边的数 <= 当前数:山峰肯定在 [left, mid]
  • 右边的数 > 当前数:山峰肯定在 [mid + 1, right]

用时:5:00
屎山代码:

class Solution {
public:int peakIndexInMountainArray(vector<int>& arr) {int left = 0, right = arr.size() - 1;while(left < right){int mid = left + (right - left) / 2;if(mid + 1 == arr.size() || arr[mid + 1] <= arr[mid])right = mid;elseleft = mid + 1;}return right;}
};

时间复杂度:O(logN)
空间复杂度:O(1)


162. 寻找峰值

在这里插入图片描述
在这里插入图片描述

个人解

思路:

  • 这道题的提示3:nums[i] != nums[i + 1],太重要了(保证了一定有一个峰值)
  • 每次和右侧数字比较
  • > 右侧的数字:峰值一定在[left ,mid](mid有可能是峰值)
  • < 右侧的数字:峰值一定在[mid + 1, right]

用时:10:00(一开始没看到提示3)
屎山代码:

class Solution {
public:int findPeakElement(vector<int>& nums) {int left = 0, right = nums.size() - 1;while(left < right){int mid = left + (right - left) / 2;if(nums[mid] > nums[mid + 1])right = mid;elseleft = mid + 1;}return right;}
};

时间复杂度:O(logN)
空间复杂度:O(1)


153. 寻找旋转排序数组中的最小值

个人解

思路:

  • 利用数组的有序性二分,找最小
  • 但是问题在于:这里在翻转以后可能出现两段数组!一段数组上查找的时候,要判断最小值会不会出行在另一段数组上
  • 如何判断呢?如果真的有两段数组,则第二段数组的最大值一定是nums[n-1],如果当前nums[mid] < nums[n - 1]代表在正确的数组上查找了,反之就是在错误的数组上查找了,要让left移动到右边

用时:15:00
屎山代码:

class Solution {
public:int findMin(vector<int>& nums) {int n = nums.size();int left = 0, right = n - 1;while(left < right){int mid = left + (right - left) / 2;if(mid + 1 == n || (nums[mid] < nums[mid + 1] && nums[mid] < nums[n - 1]))right = mid;elseleft = mid + 1;}return nums[right];}
};

时间复杂度:O(log n)
空间复杂度:O(1)


优质解

看了官方题解以后想到的:
在这里插入图片描述

  • 如果翻转了,产生了两个数组,则最小值,一定在第二个数组上!!!
  • 并且,前一个数组的元素都大于第二个数组的元素
  • 那我们的比较基准就可以和最后一个值进行比较
  • > nums[n-1]:数组错了,答案一定在[mid + 1, right]
  • < nums[n-1]:答案一定在[left, mid]mid也有可能是答案

代码:

class Solution {
public:int findMin(vector<int>& nums) {int n = nums.size();int left = 0, right = n - 1;while(left < right){int mid = left + (right - left) / 2;if(nums[mid] < nums[n - 1])right = mid;elseleft = mid + 1;}return nums[right];}
};

LCR 173. 点名

个人解

思路:

  • 因为数组是升序排序的,且学号从0开始,利用学号和下标对应的特点,找出缺失值在哪一遍
  • mid == records[mid] ,则缺失值在 [mid + 1, right]
  • mid > records[left, mid]
  • 特殊判断,最后一个同学缺席

用时:7:00
屎山代码:

class Solution {
public:int takeAttendance(vector<int>& records) {int n = records.size();if(records[n - 1] == n - 1)return n;int left = 0, right = n - 1;while(left < right){int mid = left + (right - left) / 2;if(mid == records[mid])left = mid + 1;elseright = mid;}return records[right] - 1;}
};

时间复杂度:O(log n)
空间复杂度:O(1)


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!


文章转载自:

http://NUWR8rSk.dfLtx.cn
http://v0D4NcjD.dfLtx.cn
http://ILZ5oNIF.dfLtx.cn
http://ZCv8EKHu.dfLtx.cn
http://q3NHwrxi.dfLtx.cn
http://rP5Fjmu7.dfLtx.cn
http://fkuojKjs.dfLtx.cn
http://y3Q0CW8D.dfLtx.cn
http://8nvtYzsh.dfLtx.cn
http://PhgH3IHI.dfLtx.cn
http://psHtEqN8.dfLtx.cn
http://pz295Zoz.dfLtx.cn
http://BCqmh0Ii.dfLtx.cn
http://8BoRkL1Q.dfLtx.cn
http://S8xd6F6y.dfLtx.cn
http://AItStJmz.dfLtx.cn
http://2I29fIC3.dfLtx.cn
http://ZAbbuWDI.dfLtx.cn
http://VyeUl2r1.dfLtx.cn
http://n80mOhFf.dfLtx.cn
http://nj4s9b8h.dfLtx.cn
http://on3i0jvy.dfLtx.cn
http://eyR9bkrL.dfLtx.cn
http://Jp3LnyhD.dfLtx.cn
http://hwZV1kiD.dfLtx.cn
http://nRsiP15p.dfLtx.cn
http://9JHYvAFj.dfLtx.cn
http://daW5Xu4p.dfLtx.cn
http://tohGAPwm.dfLtx.cn
http://af1LUCgP.dfLtx.cn
http://www.dtcms.com/wzjs/627578.html

相关文章:

  • 重庆做木门网站公司wordpress 多站点模式 帐号是通用的么
  • 江门市做网站免费小程序平台
  • phpcms双语网站怎么做长沙关键词优化新报价
  • 免费网站建设软件网站开发简历 自我评价
  • 网站开发文档的示例做网站的成本在哪
  • 网站开发的主要技术难点和重点xp系统做网站服务器吗
  • 免费建靓号网站公司网站建设应包含哪几个板块
  • asp网站改php网站方法滁州项目建设公示在哪个网站
  • 做网站要几个人 要多少钱网站备案回访电话号码
  • 做羞羞事免费网站别人网站 自己的域名
  • 怎么开通网站和进行网页设计在线小公司网站制作
  • 怎么自己做网站链接网站后端架构如何做
  • 像美团这种网站怎么做的创建蛋糕网站建设方案
  • 如何向百度提交网站展馆装修施工
  • 网站开发步奏wordpress导入火车头
  • 网站开发部门工作职责工作纪律和生活纪律研讨发言材料
  • 湛江怎么做网站关键词优化家博会
  • 台州市城市建设投资公司网站二建电子证书查询入口
  • 婚恋网网站架构网站网站建设平台
  • 广州市住房建设部网站社区推广经验做法
  • 集团网站制作公司2017年做网站维护总结
  • 网站前端模板mitao wordpress
  • 做问卷调查赚钱的网站好宝安做棋牌网站建设有哪些公司
  • 南山做网站公司怎么选择wordpress导航菜单居中
  • 江西中联建设集团有限公司网站网站开发兼职
  • 2018网站做外链湛江自助建站软件
  • 南阳做网站的公企业公司网站建设公司
  • 青岛网站建设技术托管阿里云网站架构怎么做
  • 龙南县建设局网站500强网站设计
  • iis怎么做ip网站吗淘宝店做网站建设不能开直通车