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

东莞商贸公司寮步网站建设价格东莞免费网站建设网络营销

东莞商贸公司寮步网站建设价格,东莞免费网站建设网络营销,wordpress home,可以分4天做任务的网站目录 题目我的解法解法 题目 给定一个包含 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.ritt.cn/news/10093.html

相关文章:

  • 个人站长还有什么类型的网站可以做什么是sem推广
  • 如何做网站的网页设计网站大全
  • 网站开发武胜招聘seo行业
  • 海口网站制作案例最新域名解析
  • 江门网站推广优化网页设计html代码大全
  • 济南正规做网站公司九江seo
  • 酒类网站建设今日油价最新
  • 政府网站建设领导讲话稿自助搭建平台
  • 网站排名按天付费微帮推广平台怎么加入
  • 服务器和域名如何做网站seo优化网站的注意事项
  • 网站建设和淘宝店装修是不是一样今日小说排行榜百度搜索风云榜
  • 做网站 中介网络宣传推广方案范文
  • 买服务器做网站主机免费域名注册二级域名
  • 做京东网站需要哪些手续费企业推广app
  • 响应式网站发展整站seo服务
  • 动态网站开发 文献综述东莞搜索网络优化
  • 福州金山网站建设b站推广网站入口2023是什么
  • 淄博网站推广公司郴州seo快速排名
  • 2021年军事新闻四平网站seo
  • 网站建设 实例网站运营和维护
  • 网页设计与网站建设课程网站seo公司
  • 有口碑的江苏网站建设广东网站se0优化公司
  • 开县网站建设谷歌外贸网站
  • 新疆工程建设云网站百度百科网络销售网站
  • 海淘返利网站怎么做网络营销职业规划300字
  • 珠海多语种网站制作友情链接导航
  • 公司网站开发排名百度指数分是什么
  • wordpress ssl视频讲解网站seo哪里做的好
  • vps做网站空间四年级新闻摘抄大全
  • 做实验用哪些国外网站谷歌商店app下载