From 10a4ad39507dc916a30e91ff2cbb9b9cb2c7bb6a Mon Sep 17 00:00:00 2001 From: CavelyDD Date: Tue, 11 Dec 2018 19:17:51 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E7=9A=84?= =?UTF-8?q?=E5=B1=82=E6=AC=A1=E9=81=8D=E5=8E=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../binary_tree_level_order_traversal.cpp | 96 +++++++++++++++++++ .../readme.md | 1 + LeafScar/readme.md | 6 +- 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 LeafScar/binary_tree_level_order_traversal/binary_tree_level_order_traversal.cpp create mode 100644 LeafScar/binary_tree_level_order_traversal/readme.md diff --git a/.gitignore b/.gitignore index a94212f..c7c7f14 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ *.opendb *.json *.sqlite +*.ipch diff --git a/LeafScar/binary_tree_level_order_traversal/binary_tree_level_order_traversal.cpp b/LeafScar/binary_tree_level_order_traversal/binary_tree_level_order_traversal.cpp new file mode 100644 index 0000000..1157551 --- /dev/null +++ b/LeafScar/binary_tree_level_order_traversal/binary_tree_level_order_traversal.cpp @@ -0,0 +1,96 @@ +/* + * Ⅰ.可以看成广度优先遍历 + * 创建一个队列 + * + * 3 + * / \ + * 9 20 + * / \ + * 15 7 + * 从根节点开始设为当前节点 + * 以下是队列的先入先出演示: + * + * 队列初始化,将根节点先入队 + * (1) 3 + * 访问时将当前节点出队,并将当前节点的左子与右子顺次入队 + * 出队顺序 + * (2) |20 9| 3(出) 3 + * (3) |20| 9(出) 9 + * (4) |7 15| 20(出) 20 + * (5) |7| 15(出) 15 + * (6) || 7(出) 7 + * + * 该算法可以以迭代的形式实现 + * 1.将当前节点赋值为队顶节点并访问 + * 2.将当前节点的左子入队 + * 3.将当前节点的右子入队 + * + * ☆.每次都是一层节点顺次入队完,再顺次入队该层节点的子节点,顺序不会打乱 + * 队列的特点是先入先出 + * + * + * Ⅱ.上述方法只能按层顺次访问,却无法分层,不能达到题目结果 + * 故,需要标记每一层的最后一个节点,当访问到时,即完成一层的访问,push到返回结果 + * + * Ⅰ中☆所述: 可以当访问完该层最后一个节点时, + * 同时会将最后一个节点的左子右子入队, + * 最后一个节点的右子正好是下一层的最后一个节点, + * 即可获得标记节点 + * + * 通过该标记节点起到分层作用,每次迭代更新 + */ +#include +#include +using namespace std; + +struct TreeNode { + int val; + TreeNode* left; + TreeNode* right; + TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} +}; + +class Solution { +public: + vector> levelOrder(TreeNode* root) { + vector> rel; + + if (root == nullptr) + return rel; + + queue tempQueue; + + tempQueue.push(root); + TreeNode* lastNode = root; // 记录当前层的最后一个元素,即上一层顺次最后一个节点,push到队列中的最后一个孩子 + TreeNode* lastNodeSign = root; // 存储下一层的最后一个节点 + vector levelInt; + while (!tempQueue.empty()) + { + TreeNode* x = tempQueue.front(); + tempQueue.pop(); + + levelInt.push_back(x->val); // 存储访问元素的值 + + if (x->left != nullptr) + { + tempQueue.push(x->left); // 存入当前节点左子 + lastNodeSign = x->left; // 存入当前节点左子后,其正好为下一层的最后一个节点 + } + + if (x->right != nullptr) + { + tempQueue.push(x->right); // 存入当前节点右子 + lastNodeSign = x->right; // 下一层的最后一个节点变为其右子 + } + + if (x == lastNode) // 当访问到当前层最后一个元素时, + { + lastNode = lastNodeSign; // 更新lastNode为下一层的最后一个元素 + rel.push_back(levelInt); // levelInt已经包含当前层的所有值,存入返回结果中 + levelInt.clear(); // 清空levelInt,准备记录下一层的值 + } + } + + return rel; + } +}; diff --git a/LeafScar/binary_tree_level_order_traversal/readme.md b/LeafScar/binary_tree_level_order_traversal/readme.md new file mode 100644 index 0000000..516cbad --- /dev/null +++ b/LeafScar/binary_tree_level_order_traversal/readme.md @@ -0,0 +1 @@ +### 思路详见代码页 \ No newline at end of file diff --git a/LeafScar/readme.md b/LeafScar/readme.md index 01b15fb..3b46b18 100644 --- a/LeafScar/readme.md +++ b/LeafScar/readme.md @@ -2,4 +2,8 @@ -1.鏈闀垮叕鍏卞瓙搴忓垪 \ No newline at end of file +1.鏈闀垮叕鍏卞瓙搴忓垪 + +2.鎯呮劅涓板瘜鐨勬枃瀛 + +3. \ No newline at end of file From 6c0a3ce90ba1940f96226322ea544bcba425db44 Mon Sep 17 00:00:00 2001 From: CavelyDD Date: Tue, 11 Dec 2018 19:24:18 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E7=9A=84?= =?UTF-8?q?=E5=B1=82=E6=AC=A1=E9=81=8D=E5=8E=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LeafScar/readme.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/LeafScar/readme.md b/LeafScar/readme.md index 3b46b18..bfdbe6c 100644 --- a/LeafScar/readme.md +++ b/LeafScar/readme.md @@ -1,9 +1,7 @@ # LeafScar璐$尞鍐呭 - - 1.鏈闀垮叕鍏卞瓙搴忓垪 2.鎯呮劅涓板瘜鐨勬枃瀛 -3. \ No newline at end of file +3.浜屽弶鏍戠殑灞傛閬嶅巻 \ No newline at end of file From 2cfe2d62d5fe8fcc32e2b86e2059362a4961176b Mon Sep 17 00:00:00 2001 From: wycgi520 <437891878@qq.com> Date: Tue, 11 Dec 2018 19:39:32 +0800 Subject: [PATCH 3/9] modify --- Archer/readme.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Archer/readme.md b/Archer/readme.md index 75494ce..1c49ef1 100644 --- a/Archer/readme.md +++ b/Archer/readme.md @@ -1,5 +1,10 @@ +##1210-1212 鎵撳崱## +**缁欏畾涓涓瓧绗︿覆锛岃浣犳壘鍑哄叾涓笉鍚湁閲嶅瀛楃鐨 鏈闀垮瓙涓 鐨勯暱搴︺** + +##1206-1208 鎵撳崱## +**缁欏嚭涓や釜 闈炵┖ 鐨勯摼琛ㄧ敤鏉ヨ〃绀轰袱涓潪璐熺殑鏁存暟銆傚叾涓紝瀹冧滑鍚勮嚜鐨勪綅鏁版槸鎸夌収 閫嗗簭 鐨勬柟寮忓瓨鍌ㄧ殑锛屽苟涓斿畠浠殑姣忎釜鑺傜偣鍙兘瀛樺偍 涓浣 鏁板瓧濡傛灉锛屾垜浠皢杩欎袱涓暟鐩稿姞璧锋潵锛屽垯浼氳繑鍥炰竴涓柊鐨勯摼琛ㄦ潵琛ㄧず瀹冧滑鐨勫拰銆傛偍鍙互鍋囪闄や簡鏁板瓧 0 涔嬪锛岃繖涓や釜鏁伴兘涓嶄細浠 0 寮澶淬** + ##1203-1205鎵撳崱 ## **鍙屾暟涔嬪拰鐨勪竴涓煡鎵撅紝鍙疄鐜颁簡鏈绠鍗曠殑鏂瑰紡锛屼絾鏄紝鍝堝笇琛ㄧ殑瑙e喅鏂规杩樻湭瀹屽杽锛屾病鏈夎В鍐冲搱甯屽啿绐併** -##1206-1208 鎵撳崱## -**缁欏嚭涓や釜 闈炵┖ 鐨勯摼琛ㄧ敤鏉ヨ〃绀轰袱涓潪璐熺殑鏁存暟銆傚叾涓紝瀹冧滑鍚勮嚜鐨勪綅鏁版槸鎸夌収 閫嗗簭 鐨勬柟寮忓瓨鍌ㄧ殑锛屽苟涓斿畠浠殑姣忎釜鑺傜偣鍙兘瀛樺偍 涓浣 鏁板瓧濡傛灉锛屾垜浠皢杩欎袱涓暟鐩稿姞璧锋潵锛屽垯浼氳繑鍥炰竴涓柊鐨勯摼琛ㄦ潵琛ㄧず瀹冧滑鐨勫拰銆傛偍鍙互鍋囪闄や簡鏁板瓧 0 涔嬪锛岃繖涓や釜鏁伴兘涓嶄細浠 0 寮澶淬** \ No newline at end of file + \ No newline at end of file From 512a4d5a47b7f479644be662fdf25b780a35960a Mon Sep 17 00:00:00 2001 From: wycgi520 <437891878@qq.com> Date: Tue, 11 Dec 2018 19:41:47 +0800 Subject: [PATCH 4/9] modify --- ...0181211-lengthOfLongestSubstring-Archer.py | 63 +++++++++++++++++++ ...ngestSubstring\350\257\264\346\230\216.md" | 13 ++++ 2 files changed, 76 insertions(+) create mode 100644 Archer/lengthOfLongestSubstring/20181211-lengthOfLongestSubstring-Archer.py create mode 100644 "Archer/lengthOfLongestSubstring/lengthOfLongestSubstring\350\257\264\346\230\216.md" diff --git a/Archer/lengthOfLongestSubstring/20181211-lengthOfLongestSubstring-Archer.py b/Archer/lengthOfLongestSubstring/20181211-lengthOfLongestSubstring-Archer.py new file mode 100644 index 0000000..3986e2b --- /dev/null +++ b/Archer/lengthOfLongestSubstring/20181211-lengthOfLongestSubstring-Archer.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +# -*- coding:utf-8 -*- + +s = "vdlkdk" +dict = {} +num = 0 +out = 0 +flag = 0 +i = 0 +#鏆村姏娉1锛氭壘鍒版墍鏈変笉閲嶅鐨勫瓧绗︿覆 +''' +for i in range(0,len(s)) : + dict[s[i]] = i + num += 1 + for j in range(i+1,len(s)) : + if s[j] in dict : + break + dict[s[j]] = j + num += 1 + out = [num, out][out > num] + if out >= len(s) / 2 : + break + dict.clear() + num = 0 +''' + +#鏆村姏娉2锛氫粠杈撳嚭闀垮害out鍏ユ墜 +''' +for out in range(0,len(s)): + for i in range(0,out+1): + for j in range(i,i+len(s)-out): + if s[j] in dict: + dict.clear() + break + dict[s[j]] = j + else: + flag = 1 + if flag == 1: + break + if flag == 1: + break + +print len(s)-out +''' +#婊戝姩娉曪紝褰撳線鍙虫粦鍔ㄥ埌鍙抽噸澶嶅瓧绗︽椂锛屼粠鍓嶉潰閲嶅鐨勯偅涓瓧绗﹀悗寮濮嬫悳绱紝涓嶆柇寰幆 +''' +n = len(s) +while i < n: + if s[i] in dict: + i = dict[s[i]] + 1 + out = [num, out][out > num] + num = 0 + dict.clear() + dict[s[i]] = i + num += 1 + i += 1 + continue + dict[s[i]] = i + num += 1 + i += 1 +out = [num, out][out > num] +''' + diff --git "a/Archer/lengthOfLongestSubstring/lengthOfLongestSubstring\350\257\264\346\230\216.md" "b/Archer/lengthOfLongestSubstring/lengthOfLongestSubstring\350\257\264\346\230\216.md" new file mode 100644 index 0000000..71da795 --- /dev/null +++ "b/Archer/lengthOfLongestSubstring/lengthOfLongestSubstring\350\257\264\346\230\216.md" @@ -0,0 +1,13 @@ +# 绠楁硶瀹炵幇锛(璇︾粏瑙佷唬鐮佹枃妗) # + +# 缁欏畾涓涓瓧绗︿覆锛岃浣犳壘鍑哄叾涓笉鍚湁閲嶅瀛楃鐨 鏈闀垮瓙涓 鐨勯暱搴︺ # + +#鎬濊矾# +1.浠巌=0鑷硁-1锛宩=i+1鑷硁-1锛屼负绱㈠紩锛屾壘鍏ㄩ儴閫傚悎鐨勫瓙瀛楃涓诧紝鐒跺悗寰楀埌绛旀 +2銆佽緭鍑洪暱搴ut浠巒鍒1锛屼笉鏂湪鏁扮粍涓粦鍔紝鎵惧埌鏈澶х殑娌℃湁閲嶅鐨勫瓙瀛楃涓层 +3銆佸湪i涓0鑷硁-1鐨勮繃绋嬩腑涓嶆柇閲嶅缓瀛楀吀 + + +# 澶嶇洏 # + +搴旇杩樺彲浠ユ敼杩涘彟涓绉嶇畻娉曪紝鏇寸畝娲 \ No newline at end of file From 3c6ac6e2bbf87ef08815ca6bd0e4dec942d46564 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Dec 2018 21:46:01 +0800 Subject: [PATCH 5/9] test --- .../leetcode638.py" | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 "\345\272\225\345\261\202\346\220\254\347\240\226\345\267\245/leetcode638.py" diff --git "a/\345\272\225\345\261\202\346\220\254\347\240\226\345\267\245/leetcode638.py" "b/\345\272\225\345\261\202\346\220\254\347\240\226\345\267\245/leetcode638.py" new file mode 100644 index 0000000..93bd25d --- /dev/null +++ "b/\345\272\225\345\261\202\346\220\254\347\240\226\345\267\245/leetcode638.py" @@ -0,0 +1,26 @@ + + +class Solution(object): + def shoppingOffers(self, price, special, needs): + """ + :type price: List[int] + :type special: List[List[int]] + :type needs: List[int] + :rtype: int + 杩欓鍙互鎬濊冧负甯告暟涓哄崟涔帮紝鍙樻暟涓虹ぜ鍖咃紝鍙湁绀煎寘鎵嶈兘鏇存柊鏈灏忓硷紝鍥犳棰樼洰鍙樻垚浜嗘眰鏈夐檺鎯呭喌涓嬬ぜ鍖呯粍鍚堢殑鏈灏忓硷紝鏆村姏鍗冲彲銆 + """ + def check(a,b): + for i in range(len(a)): + if a[i] Date: Wed, 12 Dec 2018 11:18:43 +0800 Subject: [PATCH 6/9] update --- .../levelsearch1/bfs1.py" | 28 ++++++++++++++++++ .../levelsearch1/bfs2.py" | 20 +++++++++++++ .../levelsearch1/collection.py" | 22 ++++++++++++++ .../levelsearch1/dfs.py" | 15 ++++++++++ .../levelsearch2/bfs1.py" | 29 +++++++++++++++++++ .../levelsearch2/bfs2.py" | 20 +++++++++++++ .../levelsearch2/collection.py" | 22 ++++++++++++++ .../levelsearch2/dfs.py" | 19 ++++++++++++ .../search/binary_search.py" | 17 +++++++++++ .../search/search_bn.py" | 27 +++++++++++++++++ 10 files changed, 219 insertions(+) create mode 100644 "\345\205\211\345\237\216/levelsearch1/bfs1.py" create mode 100644 "\345\205\211\345\237\216/levelsearch1/bfs2.py" create mode 100644 "\345\205\211\345\237\216/levelsearch1/collection.py" create mode 100644 "\345\205\211\345\237\216/levelsearch1/dfs.py" create mode 100644 "\345\205\211\345\237\216/levelsearch2/bfs1.py" create mode 100644 "\345\205\211\345\237\216/levelsearch2/bfs2.py" create mode 100644 "\345\205\211\345\237\216/levelsearch2/collection.py" create mode 100644 "\345\205\211\345\237\216/levelsearch2/dfs.py" create mode 100644 "\345\205\211\345\237\216/search/binary_search.py" create mode 100644 "\345\205\211\345\237\216/search/search_bn.py" diff --git "a/\345\205\211\345\237\216/levelsearch1/bfs1.py" "b/\345\205\211\345\237\216/levelsearch1/bfs1.py" new file mode 100644 index 0000000..462e47e --- /dev/null +++ "b/\345\205\211\345\237\216/levelsearch1/bfs1.py" @@ -0,0 +1,28 @@ +class Solution: + def levelOrder(self, root): + # write your code here + res = [] + + if root is None: + return res + queue = [root] + # 鍒楄〃涓虹┖鏃讹紝寰幆缁堟 + while queue and len(queue) != 0: + # 浣跨敤鍒楄〃瀛樺偍鍚屽眰鑺傜偣 + level_val = [] + # 鍚屽眰鑺傜偣鐨勪釜鏁 + length = len(queue) + for i in range(length): + # 灏嗗悓灞傝妭鐐逛緷娆″嚭闃 + h = queue.pop(0) + if h.left: + # 宸﹀瀛愬叆闃 + queue.append(h.left) + if h.right: + # 鍙冲瀛愬叆闃 + queue.append(h.right) + level_val.append(h.val) + res.append(level_val) + return res + + diff --git "a/\345\205\211\345\237\216/levelsearch1/bfs2.py" "b/\345\205\211\345\237\216/levelsearch1/bfs2.py" new file mode 100644 index 0000000..8c54967 --- /dev/null +++ "b/\345\205\211\345\237\216/levelsearch1/bfs2.py" @@ -0,0 +1,20 @@ +class Solution: + def levelOrder(self, root): + # write your code here + res = [] + if not root: + return [] + res_list = [] + root_list = [root] + while root_list and len(root_list)!=0: + val_list = [] + level_list = [] + for node in root_list: + val_list.append(node.val) + if node.left: + level_list.append(node.left) + if node.right: + level_list.append(node.right) + root_list = level_list + res_list.append(val_list) + return res_list \ No newline at end of file diff --git "a/\345\205\211\345\237\216/levelsearch1/collection.py" "b/\345\205\211\345\237\216/levelsearch1/collection.py" new file mode 100644 index 0000000..762a431 --- /dev/null +++ "b/\345\205\211\345\237\216/levelsearch1/collection.py" @@ -0,0 +1,22 @@ +class Solution: + def levelOrder(self, root): + # write your code here + res = [] + if not root: + return res + import collections + queue = collections.deque() + queue.append(root) + # visited = set(root) + while queue: + length = len(queue) + level_val = [] + for _ in range(length): + node = queue.popleft() + level_val.append(node.val) + if node.left: + queue.append(node.left) + if node.right: + queue.append(node.right) + res.append(level_val) + return res \ No newline at end of file diff --git "a/\345\205\211\345\237\216/levelsearch1/dfs.py" "b/\345\205\211\345\237\216/levelsearch1/dfs.py" new file mode 100644 index 0000000..de75175 --- /dev/null +++ "b/\345\205\211\345\237\216/levelsearch1/dfs.py" @@ -0,0 +1,15 @@ +class Solution: + def levelOrder(self, root): + if not root: + return [] + self.result = [] + self.dfs(root, 0) + return self.result + def dfs(self, root, level): + if len(self.result) < level + 1: + self.result.append([]) + self.result[level].append(root.val) + if root.left: + self.dfs(root.left, level + 1) + if root.right: + self.dfs(root.right, level + 1) \ No newline at end of file diff --git "a/\345\205\211\345\237\216/levelsearch2/bfs1.py" "b/\345\205\211\345\237\216/levelsearch2/bfs1.py" new file mode 100644 index 0000000..76ebf85 --- /dev/null +++ "b/\345\205\211\345\237\216/levelsearch2/bfs1.py" @@ -0,0 +1,29 @@ +class Solution: + def levelOrderBottom(self, root): + """ + :type root: TreeNode + :rtype: List[List[int]] + """ + res = [] + + if root is None: + return res + queue = [root] + # 鍒楄〃涓虹┖鏃讹紝寰幆缁堟 + while queue and len(queue) != 0: + # 浣跨敤鍒楄〃瀛樺偍鍚屽眰鑺傜偣 + level_val = [] + # 鍚屽眰鑺傜偣鐨勪釜鏁 + length = len(queue) + for i in range(length): + # 灏嗗悓灞傝妭鐐逛緷娆″嚭闃 + h = queue.pop(0) + if h.left: + # 宸﹀瀛愬叆闃 + queue.append(h.left) + if h.right: + # 鍙冲瀛愬叆闃 + queue.append(h.right) + level_val.append(h.val) + res.insert(0,level_val) + return res \ No newline at end of file diff --git "a/\345\205\211\345\237\216/levelsearch2/bfs2.py" "b/\345\205\211\345\237\216/levelsearch2/bfs2.py" new file mode 100644 index 0000000..c0beaf1 --- /dev/null +++ "b/\345\205\211\345\237\216/levelsearch2/bfs2.py" @@ -0,0 +1,20 @@ +class Solution: + def levelOrderBottom(self, root): + # write your code here + res = [] + if not root: + return [] + res_list = [] + root_list = [root] + while root_list and len(root_list)!=0: + val_list = [] + level_list = [] + for node in root_list: + val_list.append(node.val) + if node.left: + level_list.append(node.left) + if node.right: + level_list.append(node.right) + root_list = level_list + res_list.insert(0,val_list) + return res_list \ No newline at end of file diff --git "a/\345\205\211\345\237\216/levelsearch2/collection.py" "b/\345\205\211\345\237\216/levelsearch2/collection.py" new file mode 100644 index 0000000..c4afcd7 --- /dev/null +++ "b/\345\205\211\345\237\216/levelsearch2/collection.py" @@ -0,0 +1,22 @@ +class Solution: + def levelOrderBottom(self, root): + # write your code here + res = [] + if not root: + return res + import collections + queue = collections.deque() + queue.append(root) + # visited = set(root) + while queue: + length = len(queue) + level_val = [] + for _ in range(length): + node = queue.popleft() + level_val.append(node.val) + if node.left: + queue.append(node.left) + if node.right: + queue.append(node.right) + res.insert(0,level_val) + return res \ No newline at end of file diff --git "a/\345\205\211\345\237\216/levelsearch2/dfs.py" "b/\345\205\211\345\237\216/levelsearch2/dfs.py" new file mode 100644 index 0000000..b5d3bbd --- /dev/null +++ "b/\345\205\211\345\237\216/levelsearch2/dfs.py" @@ -0,0 +1,19 @@ +class Solution: + def levelOrderBottom(self, root): + if not root: + return [] + self.result = [] + self.dfs(root, 0) + return self.result + def dfs(self, root, level): + if len(self.result) < level + 1: + self.result.append([]) + self.result[level].append(root.val) + if root.left: + self.dfs(root.left, level + 1) + if root.right: + self.dfs(root.right, level + 1) + +t = [[3],[9,20],[15,7]] +t =[2,1] +print(t[::-1]) \ No newline at end of file diff --git "a/\345\205\211\345\237\216/search/binary_search.py" "b/\345\205\211\345\237\216/search/binary_search.py" new file mode 100644 index 0000000..24fc257 --- /dev/null +++ "b/\345\205\211\345\237\216/search/binary_search.py" @@ -0,0 +1,17 @@ +class BS: + def search(self,nums,target): + return self.bsearch(nums,0,len(nums)-1,target) + def bsearch(self,nums,low,high,target): + while(low<=high): + mid = (low+high)//2 + if nums[mid] == target: + return mid + elif nums[mid] < target: + low=mid+1 + elif nums[mid] > target: + high=mid-1 + return None +nums = [9,5,7,0,1,2,3,12] +target = 0 +bs = BS() +print(bs.search(nums,target)) \ No newline at end of file diff --git "a/\345\205\211\345\237\216/search/search_bn.py" "b/\345\205\211\345\237\216/search/search_bn.py" new file mode 100644 index 0000000..d3d4719 --- /dev/null +++ "b/\345\205\211\345\237\216/search/search_bn.py" @@ -0,0 +1,27 @@ +class Solution: + def search(self, nums, target): + """ + :type nums: List[int] + :type target: int + :rtype: int + """ + import sys + sys.setrecursionlimit(100000) # 杩欓噷璁剧疆涓哄崄涓 + return self.zheban(nums, target, 0, len(nums) - 1) + + def zheban(self, nums, target, low, high): + if high < low: + return -1 + mid = (low + high) // 2 + if nums[mid] == target: + return mid + if nums[mid] >= nums[low]: + if nums[mid] >= target and target >= nums[low]: + return self.zheban(nums, target, low, mid - 1) + else: + return self.zheban(nums, target, mid + 1, high) + else: + if nums[mid] <= target and target <= nums[high]: + return self.zheban(nums, target, mid + 1, high) + else: + return self.zheban(nums, target, low, mid - 1) \ No newline at end of file From 1ec49a8ab87e205876610b8b2168b89994372344 Mon Sep 17 00:00:00 2001 From: spareribs <370835062@qq.com> Date: Wed, 12 Dec 2018 22:08:26 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=88=A0=E9=99=A4.idea=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9,=20=E4=BF=AE=E6=94=B9gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 119 ++++++ .idea/encodings.xml | 4 - .idea/learning-algorithm.iml | 11 - .idea/misc.xml | 7 - .idea/modules.xml | 8 - .idea/vcs.xml | 6 - .idea/workspace.xml | 362 ------------------ .../Readme.md | 0 Spareribs/0023 merge_k_Sorted_lists/Readme.md | 0 Spareribs/0053 maximums_subarray/Readme.md | 102 +++++ 10 files changed, 221 insertions(+), 398 deletions(-) delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/learning-algorithm.iml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml delete mode 100644 .idea/workspace.xml rename Spareribs/{0053 merge_two_sorted_lists => 0021 merge_two_sorted_lists}/Readme.md (100%) create mode 100644 Spareribs/0023 merge_k_Sorted_lists/Readme.md create mode 100644 Spareribs/0053 maximums_subarray/Readme.md diff --git a/.gitignore b/.gitignore index c7c7f14..c88077a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,122 @@ *.json *.sqlite *.ipch +.idea + +# 20181212 鎺掗 +# ------------------- +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 15a15b2..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/learning-algorithm.iml b/.idea/learning-algorithm.iml deleted file mode 100644 index f3d7bc9..0000000 --- a/.idea/learning-algorithm.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 8656114..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 3627932..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml deleted file mode 100644 index d2a73e8..0000000 --- a/.idea/workspace.xml +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - DEFINITION_ORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -