1 Star 0 Fork 0

丁旭升/cpp代码

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
旋转数组的最小数字-二分法.txt 1.32 KB
一键复制 编辑 原始数据 按行查看 历史
丁旭升 提交于 2022-10-03 11:58 . 一道变异二分法题
https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba?
class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
if(rotateArray.empty())
{
return 0;
}
int right = rotateArray.size()-1;
int left = 0, mid = 0;
while(rotateArray[left] >= rotateArray[right])
{
mid = (left+right)>>1;
if(right - left == 1){
//两个下标已经相邻了
mid = right;
break;
}
if(rotateArray[mid]==rotateArray[left] &&
rotateArray[mid]==rotateArray[right]) //特殊情况
{
int min = rotateArray[left];
for(int i=left+1; i<right; i++)
{
if(rotateArray[i] < min)
{
//更新最小
min=rotateArray[i];
}
}
//返回min
return min;
}
else if(rotateArray[mid] >= rotateArray[left])//min在右面
{
left=mid;
}
else //最小值在左面
{
right=mid;
}
}
return rotateArray[mid];
}
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/ding-xushengyun/code.git
[email protected]:ding-xushengyun/code.git
ding-xushengyun
code
cpp代码
master

搜索帮助