Under my umbrella.

SKII

Less is more.

摘要: 206th 反转链表 三指针法/迭代 原理:把后一个元素的next指针指向前一个元素。 为什么要引入三个指针: Previous指针:用来记录前一个元素,mid指针将指向它。 Mid指针:用来记录当前需要修改next指针的那个元素,在previous指针的前一位,previous指针在修改完毕后将指 阅读全文
posted @ 2020-07-09 17:02 NLYang 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 19th 删除链表的倒数第N个节点 双重循环思路/利用数学特性 倒数第n个数的位置是正数第length - n + 1,我们只需要先数出链表长度,再利用这个特性删除即可。 需要注意的是,如果不对原链表做任何操作的情况下,这样的算法会在首链表失效,(首节点之前再无其他节点用来使用previous.ne 阅读全文
posted @ 2020-07-09 09:13 NLYang 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 237th 删除链表中的节点 思考一下就行 趣味题。 因为我们无法拿到node之前的节点previous,因此无法通过previous.next = node.next来删除节点。我们只需要把后面一位的值复制到此位,然后删除后面那位即可。 /** * Definition for singly-li 阅读全文
posted @ 2020-07-08 14:55 NLYang 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 8th 字符串转换整数 (atoi) 字符串模式匹配 这种题目极易写出臃肿的代码,我们需要明确具体的条件,并充分考虑细节。(否则会被样例虐爆) 这里有一个常用的判断溢出条件的方法,在之前的题目中也有出现。 对于正数: if(number > Integer.MAX_VALUE / 10 || (nu 阅读全文
posted @ 2020-07-08 14:35 NLYang 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 14th 最长公共前缀 暴力模拟/横向扫描 根据题意模拟一遍运行过程即可:先求出第一个和第二个串的最长公共前缀,再以此前缀和第三个串求最长公共前缀… ... 前缀也是一个串的字串,因此要善用string.substring()函数。 class Solution { public String lo 阅读全文
posted @ 2020-07-07 09:20 NLYang 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 38th 外观数列 简单模拟 根据题目描述,简单的模拟一遍即可。 class Solution { public String countAndSay(int n) { StringBuilder sb = new StringBuilder("1"); for (int k = 1; k < n; 阅读全文
posted @ 2020-07-06 15:32 NLYang 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 28th 实现 strStr() 滑动窗口思想/简单模拟 一个外循环用来遍历大串,一个内循环(或调substring函数)用来比对元素。 class Solution { public int strStr(String haystack, String needle) { int l = need 阅读全文
posted @ 2020-07-06 10:06 NLYang 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 125th 验证回文字符串 双指针法 利用双指针逐一对比,遇到不合法字符时跳过。 class Solution { public boolean isPalindrome(String s) { s = s.toLowerCase(); int i = 0, j = s.length() - 1; 阅读全文
posted @ 2020-07-05 16:10 NLYang 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 242th 有效的字母异位词 哈希思想 利用哈希表分别统计两个字符串中出现的字母次数,如果满足条件则哈希表中两串的字母出现次数是相同的。 class Solution { public boolean isAnagram(String s, String t) { if(s.length() != 阅读全文
posted @ 2020-07-05 15:44 NLYang 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 387th 字符串中的第一个唯一字符 哈希思想 不重复的字符经过哈希表统计/映射后,其值为1。需要注意的是采用hash table映射后不能按a-z这样的英文字母表顺序查询第一个不重复字符,需要按照字符串原有的顺序线性查找。 class Solution { public int firstUniq 阅读全文
posted @ 2020-07-05 15:11 NLYang 阅读(130) 评论(0) 推荐(0) 编辑