image.png

    1. /**
    2. * @param{number[]}nums
    3. * @param{number}target
    4. * @return{number}
    5. */
    6. var search = function(nums, target) {
    7. let left=0,right=nums.length-1
    8. while(left<right){
    9. let middle = Math.floor(right/2+left/2);
    10. if(nums[middle]<target){
    11. left = middle+1
    12. }
    13. else{
    14. right=middle
    15. }
    16. }
    17. if(nums[left]==target){
    18. return left
    19. }
    20. else{
    21. return -1
    22. }
    23. };

    image.png

    1. /**
    2. * Definition for isBadVersion()
    3. *
    4. * @param {integer} version number
    5. * @return {boolean} whether the version is bad
    6. * isBadVersion = function(version) {
    7. * ...
    8. * };
    9. */
    10. /**
    11. * @param {function} isBadVersion()
    12. * @return {function}
    13. */
    14. var solution = function(isBadVersion) {
    15. /**
    16. * @param {integer} n Total versions
    17. * @return {integer} The first bad version
    18. */
    19. return function(n) {
    20. let left=1,right=n
    21. while(left<right){
    22. let middle=Math.floor(left/2+right/2)
    23. if(isBadVersion(middle)){
    24. right=middle
    25. }
    26. else{
    27. left=middle+1
    28. }
    29. }
    30. return left
    31. };
    32. };

    image.png

    1. /**
    2. * @param {number[]} nums
    3. * @param {number} target
    4. * @return {number}
    5. */
    6. var searchInsert = function(nums, target) {
    7. let left=0,right=nums.length-1
    8. while(left<right){
    9. let middle=Math.floor(left/2+right/2)
    10. if(nums[middle]<target){
    11. left=middle+1
    12. }
    13. else right=middle
    14. }
    15. if (nums[right]<target){
    16. return left+1
    17. }
    18. else{
    19. return left
    20. }
    21. };