剑指Offer 49 把字符串转换成整数

题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

思路

  1. 其实这道题就是要考虑周全就行,首先是字符串的鉴别啊,“+”和“-”的判别,然后我就写多了。。。。

    more >>

剑指Offer 47 不用加减乘除做加法

题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

思路

  1. 依靠位运算,其实真的很巧妙对于+运算,难点其实就在进位运算;
    (101+10001)不考虑进位就是=10100;就是异或运算,只有一个1一个0才等于1;然后考虑进位,两个都是1才可能产生进位;也就是与运算;然后在左移一位即可;

    more >>

剑指Offer 46 求1+2+3+....n

题目描述

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

思路

  1. 首先没了上面那些关键字你会发现,你不能循环了,所以你得想办法循环,书上给的是构造函数,但是java默认构造函数不初始化,除非你手动,所以说就不行了
  2. 没有if,你会发现递归的条件不能控制了,和for,while一样,其实我们失去的就是控制边界;那么想法就是如何让程序顺利退出;
    3.下面说三种方法,异常,&&短路运算符,次方运算

    more >>

剑指Offer 45圆圈中最后剩下的数字

题目描述

0,1。。。n-1这n个数字排成圈;从数字0开始报数(报数开始为1),报道m时,把它踢出去,然后继续从1报数,最后会剩下谁

思路

  1. 模拟游戏过程,直接建一个循环列表,一个一个报数,不过显然这种方法比较复杂;
  2. 不一个一个报数了,直接开上帝模式,指挥下一个出去
  3. 公式的啦,数学之美;

    more >>

牛客网刷题笔记 2

笔记

  1. Math.round() 取最近似的值,如果一样大,取偏大的值;
    Math.round(11.5) 等于12. Math.round(-11.5) 等于11;

  2. floor : 意为地板,指向下取整,返回不大于它的最大整数

  3. ceil : 意为天花板,指向上取整,返回不小于它的最小整数

  4. java命令用来执行java程序;javac是编译;

    more >>