7. 整数反转
问题7 整数反转 ★☆☆☆☆ https://leetcode.cn/problems/reverse-integer/ 按十进制位反转一个整数的思路是比较直接的,由低位到高位,我们可以很方便地遍历一个整数的十进制位,在遍历过程中,也很容易维护一个反转后的整数值。唯一的难点是如何处理overflow的问题。如果可以使用长整型,那么overflow的问题也很容易解决。但是题目明确要求不要使用...
问题7 整数反转 ★☆☆☆☆ https://leetcode.cn/problems/reverse-integer/ 按十进制位反转一个整数的思路是比较直接的,由低位到高位,我们可以很方便地遍历一个整数的十进制位,在遍历过程中,也很容易维护一个反转后的整数值。唯一的难点是如何处理overflow的问题。如果可以使用长整型,那么overflow的问题也很容易解决。但是题目明确要求不要使用...
问题2481 分割圆的最少切割次数 ★☆☆☆☆ https://leetcode.cn/problems/minimum-cuts-to-divide-a-circle/ 这个题目有点意思,我觉得是一个不错的思维题。 那么按照题目要求的将一个圆n等分,至少需要的cut数是多少呢?将一个圆n等分的结果是以圆心为顶点的n个角,每个角大小一样。每个角两条边,但是相邻的两个角共用一条边,所以将一...
问题1362 最接近的因数 ★☆☆☆☆ https://leetcode-cn.com/problems/closest-divisors/ 这个题目我想到的就是暴力解法,抽象出一个计算某个数绝对值差最小的乘数对的方法,然后分别计算num+1和num+2的绝对值差最小的乘数对,然后比较它们哪个绝对值差更小。提交以后是没有问题的,不过效率是差了点。额,看了下官方题解,基本是一样的思路。 ...
问题12 整数转罗马数字 ★☆☆☆☆ https://leetcode-cn.com/problems/integer-to-roman/ 题目乍一看有点唬人,简单来说,就是将阿拉伯数字转换为罗马数字。那么很直接的,按照罗马数字的进制规则,由大到小的处理基数就可以了,即按照1000、900、500、400、100、90、50、40、10、9、5、4、1的顺序,分别做如下计算:用当前值和基数...
问题1015 可被K整除的最小整数 ★★☆☆☆ https://leetcode.cn/problems/smallest-integer-divisible-by-k/ 这个题目算是比较纯粹的数学题目了。题目本身不难理解,给定一个整数k,求完全由数字1组成的、能被k整除的、最小的那个整数包含的数字1的个数。 从简单直接的想法入手,我们可以由小到大挨个遍历1、11、111、…,直到遍历到...
问题986 区间列表的交集 ★★☆☆☆ https://leetcode-cn.com/problems/interval-list-intersections/ 这个题目的解题思路还是比较容易想到的,有点像合并有序链表,两个指针i和j分别挨个指向firstList和secondList,对于当前指向的两个interval,判断它们是否相交,如果相交,把相交的部分记录下来,无论是否相交,i...
问题977 有序数组的平方 ★☆☆☆☆ https://leetcode-cn.com/problems/squares-of-a-sorted-array/ 如何以O(N)的时间复杂度来解决这个问题呢?我一开始的思路是先遍历到第一个正数的位置,然后从该位置向两边遍历。看了下官方题解才明白,直接从两端向中间遍历就可以嘛。很好的体现了双指针的概念。 public int[] sorted...
问题846 一手顺子 ★★☆☆☆ https://leetcode-cn.com/problems/hand-of-straights/ 首先,根据题目要求,如果hand包含的元素值个数不能被groupSize整除,那么显然不能满足分组要求。那么接下来该如何判断是否能满足分组要求呢?我的直觉是先计数,统计每个元素出现的次数。然后我只能想到比较暴力的解法就是按元素值从小到大(因此计数元素个数...
问题767 重构字符串 ★★☆☆☆ https://leetcode.cn/problems/reorganize-string/ 刚入手这个题目时,有点想当然了,直觉上的思路是先计数字符个数,然后按个数由大到小,往重组后的字符串里塞,当找不到可塞的位置时,认为是bad case. 提交以后不通过,很快就发现了问题在哪。一个简单的例子,假设个数最少的字符是两个,其他字符都很好的塞到了重组后...
问题55 跳跃游戏 ★☆☆☆☆ https://leetcode.cn/problems/jump-game/ 我的思路是这样的,分析题目,这个题目的关键在于0元素点,如果除结尾元素外,没有0元素点,那么肯定是能从开始元素跳到结尾元素的。所以可以倒序循环找0元素点,如果找到了,那么需要判断在它前面是否有某个元素可以跳过这个0元素点,如果没有,那说明跳不到结尾元素了,循环结束;如果有,那么继...