068. 查找插入位置

class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int l=0,r=nums.size();
nums.push_back(1000000);//一定有数比target大 它在的位置会是最后一个插入的位置 可以直接return l
while(l<r)
{
int mid=l+r>>1;
if(nums[mid]>=target)r=mid;
else l=mid+1;
}
return l; }
};

069. 山峰数组的顶部

山峰符合两段性

class Solution {
public:
int peakIndexInMountainArray(vector<int>& a) {
int l=1,r=a.size()-2;
while(l<r)
{
int mid=l+r+1>>1;
if(a[mid]>a[mid-1])l=mid;
else r=mid-1;//说明答案严格在左侧 }
return l;
}
};

070. 排序数组中只出现一次的数字

class Solution {
public:
int singleNonDuplicate(vector<int>& nums) {
/*
二分的性质是 两两看成一组 target左边 数都相同
右边 数都不同 */
nums.push_back(nums.back()+1);
int l=0,r=nums.size()/2-1;//组数
while(l<r)
{
int mid=l+r>>1;
if(nums[mid*2]==nums[mid*2+1])l=mid+1;//在左边
else r=mid;
}
return nums[2*l];//第l组第一个数
}
};

071. 按权重生成随机数

class Solution {
public:
/*
二分查前缀和 下标
*/
vector<int>s;
Solution(vector<int>& w) {
s=w;
for(int i=1;i<w.size();i++)s[i]+=s[i-1]; } int pickIndex() {
int x=rand()%s.back()+1;//1到s.back()
return lower_bound(s.begin(),s.end(),x)-s.begin(); }
};

072. 求平方根

class Solution {
public:
int mySqrt(int x) {
int l=0,r=x;
//第一个y^2<=x
while(l<r)
{
int mid=l+r+1ll >>1; //LL类型的1
if(mid<=x/mid)l=mid;
else r=mid-1;
}
return l;
}
};

073. 狒狒吃香蕉

二分的是答案

class Solution {
public:
int minEatingSpeed(vector<int>& piles, int h) {
int l=1,r=1;
for(auto x:piles)r=max(r,x); while(l<r)
{
int mid=l+r>>1;
int time=0;
for(auto x:piles)time+=(x+mid-1)/mid;
if(time<=h)r=mid;
else l=mid+1; }
return l;
}
};

最新文章

  1. 9.Configure One-to-One(配置一对一关系)【Code-First系列】
  2. WCF Failed to invoke the service. Possible causes: The service is offline or inaccessible
  3. 30天C#基础巩固------集合,File(文件操作 ),Encoding处理字符集
  4. hiho #1284 机会渺茫
  5. javascript 分页组件
  6. MongoDB增删改查
  7. (7)nehe教程1 创建一个OpenGL窗口:
  8. IOS 中关于自定义Cell 上的按钮 开关等点击事件的实现方法(代理)
  9. CocoaPods 安装使用教程
  10. Tinyhttpd精读解析
  11. python 模块与包
  12. Java异常实战——OutOfMemoryError
  13. svg 动画 透明度 放大缩小 x轴Y轴
  14. 孟岩:怎么看待Coin与Token的关系?
  15. HTML特殊符号(字符实体)大全
  16. luogu 1484\1792 种树 奇怪的贪心可反悔
  17. Eclipse块选择快捷键
  18. .NET Core 配置GC工作模式与内存的影响
  19. IDEA出现Cannot resolve symbol &quot;xxx&quot;(无法解析符号)
  20. 总结我在huawei matebook D 2018版中安装archlinux的过程

热门文章

  1. 【TS】class类和接口
  2. 【KAWAKO】TVM-在ubuntu服务器上的安装
  3. 代码随想录算法训练营day21 | leetcode ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● ***236. 二叉树的最近公共祖先
  4. 如何在js中把对象object追加到数组中?
  5. Java 文本检索神器 &quot;正则表达式&quot;
  6. Java对象布局
  7. xr32f429开发环境搭建
  8. Kali配置gmssl密码算法库
  9. gridfs + nginx + mongodb 实现图片服务器
  10. 【8】java之引用传递