1. 程式人生 > 其它 >1035.不相交的線

1035.不相交的線

劍指 Offer 53 - II. 0~n-1中缺失的數字

遍歷

找到值不等於索引的項

時間複雜度O(n),空間複雜度O(1)

class Solution {
    public int missingNumber(int[] nums) {
        int ans=0;
        for(ans=0;ans<nums.length;ans++)
        {
            if(nums[ans]!=ans)
            {
                break;
            }
        }
        return
ans; } }

二分查詢

假如中間的值等於索引,說明缺失的數字不在左半部分,將left更新為mid,如果不等於索引,則證明缺失的數字在左半部分

時間複雜度O(logn),空間複雜度O(1)

class Solution {
    public int missingNumber(int[] nums) {
        int left =0,right=nums.length-1;
        while(left <= right)
        {
            int mid = (left+right)/2;
            if(nums[mid] == mid)
            {
                left 
= mid+1; } else { right = mid-1; } } return left; } }