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

东莞商贸公司寮步网站建设价格关键词列表

东莞商贸公司寮步网站建设价格,关键词列表,4399小游戏网页版在线玩,html5网站开发视频教程目录 题目我的解法解法 题目 给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。 你设计的解决方案…

目录

  • 题目
  • 我的解法
  • 解法

题目

给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。

假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。

你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。

我的解法

class Solution {
public:int findDuplicate(vector<int>& nums) {sort(nums.begin(),nums.end());int l=0;int r=nums.size()-1;while(l<r){int mid=l+(r-l)/2;if(nums[mid]<nums[mid+1]){r=mid;}else if(nums[mid]=nums[mid+1]){l=mid+1;}}return nums[l];}
};

通过了44个用例,但是发现遇到问题就是
在这里插入图片描述
无法考虑排序后重复元素在最右边的情况,因为判断条件中间数不是重复的话,默认会往左边查找。
其实找到第一个最大的元素就可以了。有点像半个爬坡。找到第一个坡
不找峰顶

解法

class Solution {
public:int findDuplicate(vector<int>& nums) {int n = nums.size();int l = 1, r = n - 1, ans = -1;while (l <= r) {int mid = (l + r) >> 1;int cnt = 0;for (int i = 0; i < n; ++i) {cnt += nums[i] <= mid;}if (cnt <= mid) {l = mid + 1;} else {r = mid - 1;ans = mid;}}return ans;}
};

牛逼,以前一直以为二分查找只能查找排好序的数组,如果一个数组的统计性质具有单调递增,也能查找,长见识了。

http://www.hengruixuexiao.com/news/21750.html

相关文章:

  • wordpress 集成支付宝2022最好的百度seo
  • 珠海市城乡规划建设局网站seo页面代码优化
  • 512内存 wordpress网站怎样优化文章关键词
  • 网站建设栏目市场调研报告ppt
  • 手机网站开发教程网络营销的公司有哪些
  • 关于做网站的前言搜索百度
  • app开发网站建设及开发谷歌推广怎么做最有效
  • 网站建设与管理(第2版)百度站长平台网址
  • 代理机构做的网站找不到人了怎么办阿里巴巴国际站
  • 江苏网站建设南通学电子商务出来能干嘛
  • wordpress 淘宝客采集2020 惠州seo服务
  • 女朋友在互联网公司做网站抖音视频seo霸屏
  • 阿里云网站建设 部署与发布答案网络营销的宏观环境
  • seo建站优化推广陕西seo快速排名
  • 客户网站建设完成后需要什么seo优化技术培训
  • 网站建设项目海南百度竞价推广
  • 人民日报客户端的视频怎么下载seo免费
  • 做系统那个网站好黑龙江网络推广好做吗
  • 爱站网功能杭州网络整合营销公司
  • 易语言如何做验证系统官方网站推广软件赚钱
  • 做网站买完域名还需要什么seo排名快速刷
  • 网站做适配手机要多久济南seo整站优化价格
  • 企划做网站临沂头条新闻今日头条
  • 优秀品牌网站案例分析做一个app软件大概要多少钱
  • wordpress中文说明书短视频seo优化排名
  • 宁波育才建设教育集团网站武汉百度关键词推广
  • 济南建设网站需要网络营销是什么工作
  • 网站建设要托管服务器深圳seo关键词优化外包公司
  • 电子商务网站建设指导书俄国搜索引擎yandex入口
  • 免费创网站深圳营销型网站