Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
CS-Notes
提交
e525c616
C
CS-Notes
项目概览
wushizhenking
/
CS-Notes
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CS-Notes
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e525c616
编写于
7月 29, 2018
作者:
C
CyC2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
dc45cfc1
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
16 addition
and
3 deletion
+16
-3
notes/剑指 offer 题解.md
notes/剑指 offer 题解.md
+16
-3
未找到文件。
notes/剑指 offer 题解.md
浏览文件 @
e525c616
...
...
@@ -1640,6 +1640,19 @@ private void backtracking(TreeNode node, int target, ArrayList<Integer> path)
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的 head。
```
java
public
class
RandomListNode
{
int
label
;
RandomListNode
next
=
null
;
RandomListNode
random
=
null
;
RandomListNode
(
int
label
)
{
this
.
label
=
label
;
}
}
```
<div
align=
"center"
>
<img
src=
"../pics//a01d1516-8168-461a-a24b-620b9cfc40f4.png"
width=
"300"
/>
</div><br>
## 解题思路
...
...
@@ -1820,7 +1833,7 @@ private void backtracking(char[] chars, boolean[] hasUsed, StringBuilder s)
多数投票问题,可以利用 Boyer-Moore Majority Vote Algorithm 来解决这个问题,使得时间复杂度为 O(N)。
使用 cnt 来统计一个元素出现的次数,当遍历到的元素和统计元素不相等时,令 cnt--。如果前面查找了 i 个元素,且 cnt == 0
,说明前 i 个元素没有 majority,或者有 majority,但是出现的次数少于 i / 2 ,因为如果多于 i / 2 的话 cnt 就一定不会为 0 。此时剩下的 n - i 个元素中,majority 的数目依然多于 (n - i) / 2,因此继续查找就能找出 majority。
使用 cnt 来统计一个元素出现的次数,当遍历到的元素和统计元素不相等时,令 cnt--。如果前面查找了 i 个元素,且 cnt == 0,说明前 i 个元素没有 majority,或者有 majority,但是出现的次数少于 i / 2 ,因为如果多于 i / 2 的话 cnt 就一定不会为 0 。此时剩下的 n - i 个元素中,majority 的数目依然多于 (n - i) / 2,因此继续查找就能找出 majority。
```
java
public
int
MoreThanHalfNum_Solution
(
int
[]
nums
)
...
...
@@ -1924,7 +1937,7 @@ public ArrayList<Integer> GetLeastNumbers_Solution(int[] nums, int k)
if
(
maxHeap
.
size
()
>
k
)
maxHeap
.
poll
();
}
return
new
ArrayList
<>(
maxHeap
)
;
return
new
ArrayList
<>(
maxHeap
);
}
```
...
...
@@ -2005,7 +2018,7 @@ public char FirstAppearingOnce()
## 题目描述
{6,
-3,-2,7,-15,1,2,
2},连续子数组的最大和为 8(从第 0 个开始,到第 3 个为止)。
{6,
-3, -2, 7, -15, 1, 2,
2},连续子数组的最大和为 8(从第 0 个开始,到第 3 个为止)。
## 解题思路
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录