From 0b3e4aed920c420d6fdb1d76872e826796926ed3 Mon Sep 17 00:00:00 2001
From: Logen <47022821+Logenleedev@users.noreply.github.com>
Date: Mon, 20 Feb 2023 22:30:01 -0600
Subject: [PATCH 2/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E6=96=B9?=
=?UTF-8?q?=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
problems/1207.独一无二的出现次数.md | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/problems/1207.独一无二的出现次数.md b/problems/1207.独一无二的出现次数.md
index afc93eda..1a7a0019 100644
--- a/problems/1207.独一无二的出现次数.md
+++ b/problems/1207.独一无二的出现次数.md
@@ -98,7 +98,8 @@ class Solution {
```
Python:
-```python
+```python
+# 方法 1: 数组在哈西法的应用
class Solution:
def uniqueOccurrences(self, arr: List[int]) -> bool:
count = [0] * 2002
@@ -113,6 +114,26 @@ class Solution:
return False
return True
```
+```python
+# 方法 2: map 在哈西法的应用
+class Solution:
+ def uniqueOccurrences(self, arr: List[int]) -> bool:
+ ref = dict()
+
+ for i in range(len(arr)):
+ ref[arr[i]] = ref.get(arr[i], 0) + 1
+
+ value_list = sorted(ref.values())
+
+ for i in range(len(value_list) - 1):
+ if value_list[i + 1] == value_list[i]:
+ return False
+
+ return True
+
+```
+
+
Go:
JavaScript:
From 97e5867fac9161200652c52dafa955df6805cdca Mon Sep 17 00:00:00 2001
From: fw_qaq 参与本项目,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!
-> 链表操作中,可以使用原链表来直接进行删除操作,也可以设置一个虚拟头结点在进行删除操作,接下来看一看哪种方式更方便。 +> 链表操作中,可以使用原链表来直接进行删除操作,也可以设置一个虚拟头结点再进行删除操作,接下来看一看哪种方式更方便。 # 203.移除链表元素 From e7bc3d3a7ee984f40153a270d0d42d461d5d2136 Mon Sep 17 00:00:00 2001 From: Logen <47022821+Logenleedev@users.noreply.github.com> Date: Wed, 22 Feb 2023 20:07:09 -0600 Subject: [PATCH 5/5] =?UTF-8?q?add=20python=E7=AE=97=E6=B3=95=E6=A8=A1?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/算法模板.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/problems/算法模板.md b/problems/算法模板.md index 24d3e6bd..59de69df 100644 --- a/problems/算法模板.md +++ b/problems/算法模板.md @@ -803,6 +803,46 @@ Java: Python: +## 二分查找法 +```python +def binarysearch(nums, target): + low = 0 + high = len(nums) - 1 + while (low <= high): + mid = (high + low)//2 + + if (nums[mid] < target): + low = mid + 1 + + if (nums[mid] > target): + high = mid - 1 + + if (nums[mid] == target): + return mid + + return -1 +``` + +## KMP + +```python +def kmp(self, a, s): + # a: length of the array + # s: string + + next = [0]*a + j = 0 + next[0] = 0 + + for i in range(1, len(s)): + while j > 0 and s[j] != s[i]: + j = next[j - 1] + + if s[j] == s[i]: + j += 1 + next[i] = j + return next +``` Go: