2020年,很难,生活很难,工作很难。
说好的刷算法题,结果三天打鱼两天晒网,整天摸鱼。摸成废人。。。
前几天,掘金推出了“定个小目标”,每天动一动,舒展一下年迈的身体,发现自己竟然还能动弹。
这次又有这个活动,趁着新鲜劲,把算法题刷起来,不求能写多好,权当给自己做笔记了。
好吧!
从那个梦开始的地方开始--两数之和,哈哈哈哈哈~~~
**思路1:**暴力循环的方法,两层for循环,元素相加结果等于目标值即可。时间复杂度不OK,放弃。
**思路2:**使用Hash算法,以元素作为key,以下标作为value,判断map.containsKey作为依据。
第二题--整数反转
**思路:**这道题目其实很好操作,我们只需取出原数字的最后一位,然后把最后一位放到结果值的最前面,以此类推直到原数字为零即可。取最后一位的方法使用%10,然后原数字需要除以10,这样下次继续%10,然后再除以10,形成一个循环。
注意:该题提到了int类型的最大值-2^32~2^32-1。需要加以判断。
这个题在评论区看到一位大佬的解法,很是佩服。
在这个里面(ans * 10)/10 != ans这句,ans*10用来判断是否溢出,如果溢出后,该数再除以10是不可能等于原来的数。同时,如果没有溢出,又因为下方的x%10不会超过10,只能是0~9,ans*10个位数是0,这样ans*10 + x%10不会发生进位,同样也不会溢出。
膜拜各位大佬!
今儿就先到这儿,咱明儿见~