![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
Lesliecc96
这个作者很懒,什么都没留下…
展开
-
剑指offer笔记——20. 表示数值的字符串(考虑特殊情况即可)
原题 思路 既然来判断,字符串是否表示数值,将字符串转成字符数组,那么便将几种特殊情况判断一下就知道了。 设置几个标签,来判断情况,初始值都为false num:是否出现0-9 dot:是否出现小数点 eE:是否出现e,E 正常情况是数字,0-9 若是小数点 小数点之前不能有小数点和E,e符号,否则返回false e,E e,E之前不能出现e,E,前面必须有数字出现,否则返回false,并且出现e,E之后,需要重置数字位num。 +号,-号 加减号只能在第一位出现,或者出现在e,E之后,否则返回fals原创 2020-08-13 20:42:54 · 117 阅读 · 0 评论 -
剑指offer笔记——打印从1到最大的n位数(大数越界)
原题 思路 返回一个整数列表的话,数字不超过int32整型取值范围内,不需要考虑大数越界的问题,只需要考虑伟大的n位数与位数n的关系 所以简单的思路便是得到最大的n位数后,从1循环遍历到end,将其放入到数组中即可。 BUT!面试题没有这么简单,真正的面试题的考点在于“大数越界”!!! 大数越界 需要考虑的点有2个 表示大数的变量的类型 不管是int/short/long,这三种变量类型,数组的取值范围都是有限的,所以不能采用这三种,需要采用字符串String类型来进行表示 生成数字的字符串集 生成的原创 2020-07-28 11:45:52 · 264 阅读 · 0 评论 -
剑指offer刷题笔记—— 二进制中1的个数(巧用&,简单好用一生推!)
二进制中1的个数 原题: 思路 之前想的是个笨办法,怎么把数字转化成二进制的形式,然后再统计1个个数。 后来发现,要巧用 “&”, 无需转换成二进制!!! 方法1 按位循环& 有一个性质,整数n&1的结果 0,n最右边的一位是0 1,n最右边的一位是1 &操作完,n右移1位,循环此操作,直至n为0. 话不多说,上代码 public class Solution { // you need to treat n as an unsigned value原创 2020-07-27 20:03:03 · 102 阅读 · 0 评论 -
剑指offer笔记——剪绳子(Ⅰ,Ⅱ)
剪绳子Ⅰ 原题: 思路:本题算法思想跟代码不是大问题,主要是数学推导。 通过劈里啪啦一通推导(看不看的,知道结论就完事儿了 ),结论是绳子以长度为3时等分效果为好,乘积最大。 其实问题变转化为,数字n,怎样除以3,使得各个商的乘积最大。 当n<=3时,没有什么规律可言,最大商就是n-1(自己品品,你品!) 当n>3时,n=3*a+b b的结果,无非有三种,0,1,2 好了,破案!!!!!!!!!!!!! 上代码: class Solution { public int cut原创 2020-07-27 11:23:36 · 97 阅读 · 0 评论