[七日打卡]之第一卡:下定决心刷算法

427 阅读2分钟

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不会发生进位,同样也不会溢出。

膜拜各位大佬!

今儿就先到这儿,咱明儿见~