上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 67 下一页
摘要: 方法一:使用哈希表存储频数 我们可以对字符串进行两次遍历。 在第一次遍历时,我们使用哈希映射统计出字符串中每个字符出现的次数。在第二次遍历时,我们只要遍历到了一个只出现一次的字符,那么就返回该字符,否则在遍历结束后返回空格。 class Solution { public: char firstUn 阅读全文
posted @ 2021-07-31 17:50 Dazzling! 阅读(37) 评论(0) 推荐(0)
摘要: 首先我们来通过一个例子理解一下这里「翻译」的过程:我们来尝试翻译「14021402」。 分成两种情况: 首先我们可以把每一位单独翻译,即 [1, 4, 0, 2],翻译的结果是 beac 然后我们考虑组合某些连续的两位: [14, 0, 2],翻译的结果是 oac。 [1, 40, 2],这种情况是 阅读全文
posted @ 2021-07-31 16:05 Dazzling! 阅读(35) 评论(0) 推荐(0)
摘要: class Solution { public: static bool cmp(int& a, int& b) { string sa = to_string(a), sb = to_string(b); return sa + sb < sb + sa; } string minNumber(v 阅读全文
posted @ 2021-07-31 15:22 Dazzling! 阅读(20) 评论(0) 推荐(0)
摘要: class Solution { public: int digitAtIndex(int n) { int digit = 1; int start = 0; long long cnt = 10; while (n >= cnt) { n -= cnt; digit++; if (start = 阅读全文
posted @ 2021-07-31 15:08 Dazzling! 阅读(31) 评论(0) 推荐(0)
摘要: 标准的中序遍历采用 左 → 根 → 右 的顺序,其中 左 和 右 的部分调用递归。 本题的处理在于将前一个结点与当前结点链接,因此,必须跟踪最后一个结点,该结点在新的双向链表中是当前最大的。 另外一个细节:我们也需要保留第一个,也就是最小的结点,以完成闭环。 下面是具体算法: 将 first 和 l 阅读全文
posted @ 2021-07-29 09:18 Dazzling! 阅读(80) 评论(0) 推荐(0)
摘要: 由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。由于链表的头节点可能会被删除,因此我们需要额外使用一个哑节点(dummy node)指向链表的头节点。 具体地,我们从指针 p 指向链表的哑节点,随后开始对链表进行遍历。如果当 阅读全文
posted @ 2021-07-28 10:57 Dazzling! 阅读(67) 评论(0) 推荐(0)
摘要: 由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。 具体地,我们从指针 cur 指向链表的头节点,随后开始对链表进行遍历。如果当前 cur 与 cur.next 对应的元素相同,那么我们就将 cur.next 从链表中移除;否 阅读全文
posted @ 2021-07-28 09:30 Dazzling! 阅读(52) 评论(0) 推荐(0)
摘要: 法一 我们首先将该链表中每一个节点拆分为两个相连的节点,例如对于链表 \(A \rightarrow B \rightarrow C\),我们可以将其拆分为 \(A \rightarrow A' \rightarrow B \rightarrow B' \rightarrow C \rightarr 阅读全文
posted @ 2021-07-27 23:22 Dazzling! 阅读(46) 评论(0) 推荐(0)
摘要: 对于给定的某个排列,我们想求出比它大的最小的排列。 可以从后往前遍历这个排列,找到第一个可以让排列的字典序变大的位置。 只有当序列单调下降时,它才不存在更大的排列,因此我们要找的位置就是第一-次出现$nums[i] < nums[i+1]$ 的位置。 那么此时将 $nums[i]$变成比它大的最小数 阅读全文
posted @ 2021-07-27 11:04 Dazzling! 阅读(54) 评论(0) 推荐(0)
摘要: 序列中包含了重复的数字,要求我们返回不重复的全排列,那么我们依然可以选择使用搜索回溯的方法来做。 我们将这个问题看作有 n 个排列成一行的空格,我们需要从左往右依次填入题目给定的 n 个数,每个数只能使用一次。那么很直接的可以想到一种穷举的算法,即从左往右每一个位置都依此尝试填入一个数,看能不能填完 阅读全文
posted @ 2021-07-27 10:33 Dazzling! 阅读(43) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 67 下一页