上一页 1 ··· 6 7 8 9 10
摘要: 1.整数转字符串 思路: 将整数变为字符串,然后翻转字符串,如果翻转后的字符串和原字符串一致,则为回文数。 例如: 123 -> '123' ,翻转后 '321',因为'321' != '123',所以不是回文数 202 -> '202' , 翻转后'202',因为'202' == '202',所以 阅读全文
posted @ 2020-04-22 12:45 nil_f 阅读(135) 评论(0) 推荐(0)
摘要: DFA法 思路: DFA即Deterministic Finite Automaton,也就是确定的有穷自动机,通过当前状态和要发生的事务获取到下一个状态。 在本题中,我们可以发现在遍历字符串字符时,可能出现的4种类型:① 空格 ② 正负号 ③ 数字 ④ 无效字符 。初始化一个当前状态,在处理每种类 阅读全文
posted @ 2020-04-21 15:07 nil_f 阅读(204) 评论(0) 推荐(0)
摘要: 1.整除取余 思路: 对原整数循环对10取余和整除,然后进行拼接。这里需要注意的时,在整除时要考虑如果原整数大于最大值或者小于最小值的情况。 例如: 原整数 x = 123 翻转后整数 new_x = 0 余数为 p ① x != 0 则 p = x%10 = 123%10 = 3,x = x // 阅读全文
posted @ 2020-04-20 12:13 nil_f 阅读(137) 评论(0) 推荐(0)
摘要: 1.找规律 思路: 对原字符串进行分块处理,找到每块中数字在Z形变化后的对应关系。 例如: 通过观察发现可以以Z型的头和身为块进行分块。即 [L E E T C O] [D E I S H I] [R I N G] 每块的数量等于行数的二倍减去2。即 4 * 2 - 2 = 6 这里可以发现每块中的 阅读全文
posted @ 2020-04-19 21:07 nil_f 阅读(181) 评论(0) 推荐(0)
摘要: 1.暴力法 思路: 循环遍历每一个子串,对每个子串进行判断,判断的方法为翻转子串和原子串进行对比,如果一致则为回文子串。 例如: abcb 可以看出最长的回文子串为bcb 代码: class Solution: def longestPalindrome(self, s: str) -> str: 阅读全文
posted @ 2020-04-18 19:50 nil_f 阅读(175) 评论(0) 推荐(0)
摘要: 代码: 思路: 中位数首先要考虑数组长度奇偶性问题,如果数组长度n是奇数,则中位数为数组第(n//2+1)个数。如果长度n为偶数,则中位数为数组第n//2个数和(n//2+1)个数的平均数。 例如: [1,3,5] 中位数为第(3//2+1)=2个数,即3 [1,3,4,5] 中位数为第(4//2) 阅读全文
posted @ 2020-04-16 13:31 nil_f 阅读(230) 评论(0) 推荐(0)
摘要: 双指针法 思路: 指针j向前移动遍历字符串,使用字典记录j所指的字符和位置,指针i负责记录当前不含重复字符的起始位置,每当j指向的字符在字典中可以找到时,更新指针i的位置和对应字符的位置,则不含重复字符的子串长度为j-i+1,找到最大值即可。 例如: abaabcba 代码: class Solut 阅读全文
posted @ 2020-04-15 13:32 nil_f 阅读(71) 评论(0) 推荐(0)
摘要: 初等数学 思路: 遍历节点相加,用一个变量carry记录每个节点相加是否要进位,则节点相加对10取余,为新的链表对应节点的值,节点相加对10进行整除为carry的值。遍历相加完成后,如果carry值不为0,添加一个新节点,值为1。 代码: # Definition for singly-linked 阅读全文
posted @ 2020-04-14 20:53 nil_f 阅读(121) 评论(0) 推荐(0)
摘要: 暴力法 思路: 循环枚举出所有可能。 代码: class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i in range(len(nums)): for j in range(i+1,len( 阅读全文
posted @ 2020-04-14 11:58 nil_f 阅读(84) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10