zoukankan      html  css  js  c++  java
  • Day 28

    剑指offer 11:

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。  来源:力扣(LeetCode)

    1、可以使用二分法,用中间的元素将数组分为两部分,然后寻找最小的值;

      当最右边high的元素小于最中间的元素mid,将low=mid+1;

      当最右边high的元素大于中间的元素,将low=mid;

      这样多次循环可以寻找到最小值。

      

    2、因为旋转数组的性质,遍历数组,比较本身这个元素和下一个元素;、

      当首次比较得出下一个比这个小时,这就是最小值。

      

    第66题:

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

    你可以假设除了整数 0 之外,这个整数不会以零开头。来源:力扣(LeetCode)

    1、在没有进位的情况下,只需要将数组最后一个元素加一即可,例如:45->46

      当有进位时,需要一个条件来判定元素进位是否全部完成,当元素+1时,如果它需要进位那么它%10一定等于0;

      那么就将这个作为条件,当+1后这个元素不等于0,就直接返回这个数组;

      当元素+1时,数组内所有位都进位的时候,可以将数组申请更新长度加一,然后首位变1即可;例如:999->1000

      

    第69题:

    实现 int sqrt(int x) 函数。

    计算并返回 x 的平方根,其中 x 是非负整数。

    由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。来源:力扣(LeetCode)

    1、二分法,定义mid时1到x的中间位置的数;

      此时判断mid*mid和x的大小;

      如果大于x就说明根号x的值在mid左边,所以将最右边right定位到mid-1;

      如果小于x就说明根号x的值在mid右边,所以将最左边left定位到mid+1;

      多次循环会找到接近根号x 的值

      

  • 相关阅读:
    企业微信授权微信开发者工具
    liunx Python3中pip3安装模块出错,找不到SSL
    superagent 调用java接口,处理http请求
    Android开发一 application 应用界面主题Theme使用方法
    HTML5的Video标签的属性,方法和事件汇总
    多个select下拉框,选中当前某一项,其他下拉框去掉选中的值
    input range滑块插件 Powerange
    thinkphp 获取session的方法
    thinkphp I()方法获取不到ajax传值
    js验证图片上传大小,格式以及宽高
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13363959.html
Copyright © 2011-2022 走看看