leetcode_有序数组中的单一元素

540. 有序数组中的单一元素 - 力扣(LeetCode)

二分查找

使用条件 : 有序 , log n

复制代码
class Solution {
public:
    int singleNonDuplicate(vector<int>& nums) {
        int left = 0, right = nums.size() - 1, mid;
        while (left < right){
            mid = ( left + right ) / 2;
            if (mid % 2 == 1){
                mid -= 1;
            }
            if ( nums[mid] == nums[mid + 1] ){  //速说明这个数在右边
                left = mid + 2;
            }else {
                right = mid;
            }
        }
        return nums[left];
    }
};
相关推荐
haolin123.9 分钟前
STL vector底层揭秘:从构造到迭代器失效
开发语言·c++·算法
shehuiyuelaiyuehao18 分钟前
算法37,位运算,两个整数之和(不用+符号)
算法
猎头南楼24 分钟前
MFC 质量流量控制器中的控制算法设计与落地思考
人工智能·算法
来一碗刘肉面28 分钟前
平衡二叉树的删除
数据结构·算法
wabs66632 分钟前
关于二叉树【力扣199.二叉树的右视图的思考】
数据结构·c++·算法·leetcode·二叉树·层序遍历
a1879272183142 分钟前
【算法】动态规划第三篇:背包第一课——贪心之死与正序倒序开关
算法·leetcode·动态规划·贪心·dp·暴力·算法讲解
hope_wisdom44 分钟前
C/C++数据结构之二叉树的遍历
c语言·数据结构·c++·二叉树·深度优先·广度优先
黄金龙PLUS1 小时前
Xoodoo置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
Cccp.1231 小时前
【leetcode】(四)排序算法汇总和链表
leetcode·链表·排序算法
LayZhangStrive1 小时前
数据结构与算法 - 堆排序
java·数据结构·算法·排序算法·堆排序·大根堆