zoukankan      html  css  js  c++  java
  • 算法练习LeetCode初级算法之排序和搜索

    • 合并两个有序数组

      class Solution {

      public void merge(int[] nums1, int m, int[] nums2, int n) {

      System.arraycopy(nums2, 0, nums1, m, n);

      Arrays.sort(nums1);

      }

      }

    • 第一个错误的版本

    • 递归解法:自己突然来了灵感写的,哈哈哈,递归真的很神奇!

      /* The isBadVersion API is defined in the parent class VersionControl.

      boolean isBadVersion(int version); */

    class Solution extends VersionControl {

        public int firstBadVersion(int n) {

         return helper(0, n);

        }

        private int helper(int l,int r) {

            if (l<r) {

                int m=l+(r-l)/2;

                if (isBadVersion(m)) {

                    return helper(l, m);

                }else {

                    return helper(m+1, r);

                }

            }

            return l;

        }

    }

    • 二分法解法:

      public class Solution extends VersionControl {

      public int firstBadVersion(int n) {

      int l=1;

      int r=n;

      while(l<r){

      int m=l+((r-l)/2);

      if(isBadVersion(m)){

      r=m;

      }else{

      l=m+1;

      }

      }

      return l;

      }

      }

    • 很慢的解法:

      public class Solution extends VersionControl {

      public int firstBadVersion(int n) {

      int i=1;

      while(i<=n){

      if(isBadVersion(i)){

      break;

      }

      i++;

      }

      return i;

      }

      }

  • 相关阅读:
    Java学习之--List和ArrayList
    Linux
    Linux
    Docker 容器管理
    Docker 镜像管理
    如何理解 AWS VPC
    Linux 内核版本
    Windows 快速切换到当前目录下的dos环境
    Git 整理
    TCP/IP
  • 原文地址:https://www.cnblogs.com/GavinYGM/p/10353732.html
Copyright © 2011-2022 走看看