• 合并两个有序数组

    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;

    }

    }

算法练习LeetCode初级算法之排序和搜索的更多相关文章

  1. 【LeetCode算法】LeetCode初级算法——字符串

      在LeetCode初级算法的字符串专题中,共给出了九道题目,分别为:反转字符串,整数反转,字符串中的第一个唯一字符,有效的字母异位词,验证回文字符串,字符串转换整数,实现strStr(),报数,最 ...

  2. 算法练习LeetCode初级算法之链表

    删除链表中的节点 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ne ...

  3. 算法练习LeetCode初级算法之字符串

    反转字符串 我的解法比较low,利用集合的工具类Collections.reverse反转,用时过长 class Solution { public void reverseString(char[] ...

  4. 算法练习LeetCode初级算法之数组

    删除数组中的重复项 官方解答: 旋转数组 存在重复元素 只出现一次的数     官方解答:  同一个字符进行两次异或运算就会回到原来的值 两个数组的交集 II import java.util.Arr ...

  5. 算法练习LeetCode初级算法之其他

    位1的个数 解法一: class Solution { // you need to treat n as an unsigned value public int hammingWeight(int ...

  6. 算法练习LeetCode初级算法之数学

    Fizz Buzz class Solution { public List<String> fizzBuzz(int n) { List<String> list=new L ...

  7. 算法练习LeetCode初级算法之设计问题

    打乱数组 不断的让第一个与后面随机选择的数交换 class Solution { private int[] nums; private int[] initnums; public Solution ...

  8. 算法练习LeetCode初级算法之动态规划

    爬楼梯:斐波那契数列 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 非递归解法 class S ...

  9. 算法练习LeetCode初级算法之树

    二叉树的前序遍历 我的解法:利用递归,自底向下逐步添加到list,返回最终的前序遍历list class Solution { public List<Integer> preorderT ...

随机推荐

  1. springdata笔记2

    SpringData整合hibernate CRUD操作: pom.xml <?xml version="1.0" encoding="UTF-8"?&g ...

  2. 定时任务BlockingScheduler

    def task(): current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') print(current_time) ...

  3. java_初始化器

    1. 执行的顺序 package java20180129_1; public class Demo { // instance variable initializer 实例变量初始化器 Strin ...

  4. java_oop_方法1

    方法 方法概念 封闭业务逻辑 提高代码复用定义类的方法    类的方法定义类的某种行为(或功能)    方法返回的数据类型    方法的名称 (方法的参数也叫形参)    {方法的主体}    方法的 ...

  5. XShell停止滚屏,禁止滚动

     Ctrl+S:锁定当前屏幕  Ctrl+Q:解锁当前屏幕 Ctrl+Alt+]  进入命令输入状态

  6. ubuntu server资料

    2.改变键盘布局 sudo dpkg-reconfigure keyboard-configuration 或sudo vim /etc/default/keyboard,修改XKBLAYOUT变量的 ...

  7. Python Day5 模块 包

    一:区分Python文件的2种用途 1个Python文件的2种用途 1.1 当作脚本执行:        if __name__ == '__main__': 1.2 当作模块导入使用     if ...

  8. 知识点:Mysql 基本用法之流程控制

    流程控制 一. 条件语句 if 语句实例: delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = ...

  9. Window10下安装sbt

    参考:https://segmentfault.com/a/1190000002474507 下载:https://dl.bintray.com/sbt/native-packages/sbt/0.1 ...

  10. 学习MeteoInfo二次开发教程(七)

    1.站点文件 12010615.syn在D:\Program Files (x86)\MeteoInfo\SampleSYNOP_Stations.csv在D:\Program Files (x86) ...