From bbb58091cebbd508fd9f653ae2a1b0176f73fcec Mon Sep 17 00:00:00 2001 From: cloisonne Date: Tue, 16 Oct 2018 18:35:22 +0800 Subject: [PATCH 1/7] add list way --- ...77\346\215\242\347\251\272\346\240\274.py" | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git "a/Target Offer/\346\233\277\346\215\242\347\251\272\346\240\274.py" "b/Target Offer/\346\233\277\346\215\242\347\251\272\346\240\274.py" index bd15a41..13b560d 100644 --- "a/Target Offer/\346\233\277\346\215\242\347\251\272\346\240\274.py" +++ "b/Target Offer/\346\233\277\346\215\242\347\251\272\346\240\274.py" @@ -6,20 +6,27 @@ # -*- coding:utf-8 -*- class Solution: # s 源字符串 - + + def replaceSpaceByList(self, s): + s = list(s) + for i in range(len(s)): + if s[i] == ' ': + s[i] = '%20' + return ''.join(s) + # 使用append一次遍历即可替换 # 由于list的append是O(1)的时间复杂度,除了扩容所导致的时间损耗,该算法复杂度为O(n) def replaceSpaceByAppend(self, s): - string = list(string) - stringReplace = [] - for item in string: - if item == ' ': - stringReplace.append('%') - stringReplace.append('2') - stringReplace.append('0') - else: - stringReplace.append(item) - return "".join(stringReplace) + string = list(s) + stringReplace = [] + for item in string: + if item == ' ': + stringReplace.append('%') + stringReplace.append('2') + stringReplace.append('0') + else: + stringReplace.append(item) + return "".join(stringReplace) # 创建新的字符串进行替换 def replaceSpace1(self, s): @@ -70,3 +77,4 @@ def replaceSpace3(self, s): print(test.replaceSpace1(s)) print(test.replaceSpace2(s)) print(test.replaceSpace3(s)) +print(test.replaceSpaceByList(s)) From 477484e1e68784793705de52b4ec9014f40ee005 Mon Sep 17 00:00:00 2001 From: cloisonne Date: Tue, 16 Oct 2018 18:59:10 +0800 Subject: [PATCH 2/7] update --- ...25\260\347\273\204\346\237\245\346\211\276.py" | 15 +++++++++++++++ ...11\223\345\215\260\351\223\276\350\241\250.py" | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git "a/Target Offer/\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" "b/Target Offer/\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" index 81239fd..ff7b14e 100644 --- "a/Target Offer/\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" +++ "b/Target Offer/\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" @@ -18,6 +18,21 @@ class Solution: # array 二维列表 + + def easyFind(self,array,target): + row = len(array) + col = len(array[0]) + i=row-1 + j=0 + while j=0: + if targetarray[i][j]: + j-=1 + else: + return True + return False + def Find(self, array, target): # 判断数组是否为空 if array == []: diff --git "a/Target Offer/\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" "b/Target Offer/\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" index ad0a21d..35d3c59 100644 --- "a/Target Offer/\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" +++ "b/Target Offer/\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" @@ -8,7 +8,7 @@ def __init__(self, x=None): class Solution: def printListFromTailToHead(self, listNode): - if listNode.val == None: + if listNode==None or listNode.val == None: return l = [] head = listNode From f689479db9a69c54a31a24dd62b1a57c7a7a02c0 Mon Sep 17 00:00:00 2001 From: cloisonne Date: Tue, 16 Oct 2018 20:03:47 +0800 Subject: [PATCH 3/7] update --- ...202\243\345\245\221\346\225\260\345\210\227.py" | 14 ++++++++++++++ ...273\272\344\272\214\345\217\211\346\240\221.py" | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git "a/Target Offer/\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" "b/Target Offer/\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" index 1641cc1..f1c581b 100644 --- "a/Target Offer/\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" +++ "b/Target Offer/\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" @@ -27,6 +27,20 @@ def jumpFloorII(self, number): ans = ans * 2 return ans +# 矩形覆盖 + + def rectCover(self, number): + if number == 0: + return 0 + if number == 1: + return 1 + temp = [1, 2] + + if number >= 3: + for i in range(3, number + 1): + temp[(i + 1) % 2] = temp[0] + temp[1] + return temp[(number + 1) % 2] + test = Solution() print(test.Fibonacci(100)) print(test.jumpFloor(3)) diff --git "a/Target Offer/\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" "b/Target Offer/\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" index dc7f872..cb05a82 100644 --- "a/Target Offer/\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" +++ "b/Target Offer/\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" @@ -12,6 +12,14 @@ def __init__(self, x): self.right = None class Solution: # 返回构造的TreeNode根节点 + def reConstructBinaryTree2(self, pre, tin): + # write code here + root = TreeNode(pre[0]) + i = tin.index(pre[0]) + root.left = self.reConstructBinaryTree(pre[1:i+1],tin[:i]) + root.right = self.reConstructBinaryTree(pre[i+1:],tin[i+1:]) + return root + def reConstructBinaryTree(self, pre, tin): # write code here if not pre and not tin: @@ -28,6 +36,7 @@ def reConstructBinaryTree(self, pre, tin): tin = [5, 3, 6, 2, 4, 1] test = Solution() newTree = test.reConstructBinaryTree(pre, tin) +newTree2 = test.reConstructBinaryTree2(pre, tin) # 按层序遍历输出树中某一层的值 def PrintNodeAtLevel(treeNode, level): if not treeNode or level < 0: From 0f2e11b746395ac11d307afed36a038f5088fcd3 Mon Sep 17 00:00:00 2001 From: cloisonne Date: Sat, 20 Oct 2018 22:36:37 +0800 Subject: [PATCH 4/7] update --- ...73\264\346\225\260\347\273\204\346\237\245\346\211\276.py" | 0 .../2\346\233\277\346\215\242\347\251\272\346\240\274.py" | 0 ...20\221\346\211\223\345\215\260\351\223\276\350\241\250.py" | 0 ...07\215\345\273\272\344\272\214\345\217\211\346\240\221.py" | 4 ++++ 4 files changed, 4 insertions(+) rename "Target Offer/\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" => "Target Offer/1\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" (100%) rename "Target Offer/\346\233\277\346\215\242\347\251\272\346\240\274.py" => "Target Offer/2\346\233\277\346\215\242\347\251\272\346\240\274.py" (100%) rename "Target Offer/\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" => "Target Offer/3\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" (100%) rename "Target Offer/\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" => "Target Offer/4\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" (95%) diff --git "a/Target Offer/\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" "b/Target Offer/1\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" similarity index 100% rename from "Target Offer/\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" rename to "Target Offer/1\344\272\214\347\273\264\346\225\260\347\273\204\346\237\245\346\211\276.py" diff --git "a/Target Offer/\346\233\277\346\215\242\347\251\272\346\240\274.py" "b/Target Offer/2\346\233\277\346\215\242\347\251\272\346\240\274.py" similarity index 100% rename from "Target Offer/\346\233\277\346\215\242\347\251\272\346\240\274.py" rename to "Target Offer/2\346\233\277\346\215\242\347\251\272\346\240\274.py" diff --git "a/Target Offer/\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" "b/Target Offer/3\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" similarity index 100% rename from "Target Offer/\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" rename to "Target Offer/3\345\217\215\345\220\221\346\211\223\345\215\260\351\223\276\350\241\250.py" diff --git "a/Target Offer/\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" "b/Target Offer/4\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" similarity index 95% rename from "Target Offer/\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" rename to "Target Offer/4\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" index cb05a82..8296334 100644 --- "a/Target Offer/\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" +++ "b/Target Offer/4\351\207\215\345\273\272\344\272\214\345\217\211\346\240\221.py" @@ -13,6 +13,10 @@ def __init__(self, x): class Solution: # 返回构造的TreeNode根节点 def reConstructBinaryTree2(self, pre, tin): + if len(pre)==0: + return None + if len(pre)==1: + return pre[0] # write code here root = TreeNode(pre[0]) i = tin.index(pre[0]) From 36c30950946a9b31446a40e53aafa8d14f5e4100 Mon Sep 17 00:00:00 2001 From: cloisonne Date: Sat, 20 Oct 2018 23:05:46 +0800 Subject: [PATCH 5/7] update --- ...\272\216\345\201\266\346\225\260\345\211\215\351\235\242.py" | 0 ...\240\210\345\256\236\347\216\260\351\230\237\345\210\227.py" | 0 ...\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" | 2 +- ...\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" | 2 ++ ...210\266\344\270\2551\347\232\204\344\270\252\346\225\260.py" | 0 ...\232\204\346\225\264\346\225\260\346\254\241\346\226\271.py" | 0 6 files changed, 3 insertions(+), 1 deletion(-) rename "Target Offer/\350\260\203\346\225\264\346\225\260\347\273\204\351\241\272\345\272\217\344\275\277\345\245\207\346\225\260\344\275\215\344\272\216\345\201\266\346\225\260\345\211\215\351\235\242.py" => "Target Offer/10\350\260\203\346\225\264\346\225\260\347\273\204\351\241\272\345\272\217\344\275\277\345\245\207\346\225\260\344\275\215\344\272\216\345\201\266\346\225\260\345\211\215\351\235\242.py" (100%) rename "Target Offer/\347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227.py" => "Target Offer/5\347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227.py" (100%) rename "Target Offer/\346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" => "Target Offer/6\346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" (98%) rename "Target Offer/\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" => "Target Offer/7\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" (84%) rename "Target Offer/\344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260.py" => "Target Offer/8\344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260.py" (100%) rename "Target Offer/\346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271.py" => "Target Offer/9\346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271.py" (100%) diff --git "a/Target Offer/\350\260\203\346\225\264\346\225\260\347\273\204\351\241\272\345\272\217\344\275\277\345\245\207\346\225\260\344\275\215\344\272\216\345\201\266\346\225\260\345\211\215\351\235\242.py" "b/Target Offer/10\350\260\203\346\225\264\346\225\260\347\273\204\351\241\272\345\272\217\344\275\277\345\245\207\346\225\260\344\275\215\344\272\216\345\201\266\346\225\260\345\211\215\351\235\242.py" similarity index 100% rename from "Target Offer/\350\260\203\346\225\264\346\225\260\347\273\204\351\241\272\345\272\217\344\275\277\345\245\207\346\225\260\344\275\215\344\272\216\345\201\266\346\225\260\345\211\215\351\235\242.py" rename to "Target Offer/10\350\260\203\346\225\264\346\225\260\347\273\204\351\241\272\345\272\217\344\275\277\345\245\207\346\225\260\344\275\215\344\272\216\345\201\266\346\225\260\345\211\215\351\235\242.py" diff --git "a/Target Offer/\347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227.py" "b/Target Offer/5\347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227.py" similarity index 100% rename from "Target Offer/\347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227.py" rename to "Target Offer/5\347\224\250\344\270\244\344\270\252\346\240\210\345\256\236\347\216\260\351\230\237\345\210\227.py" diff --git "a/Target Offer/\346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" "b/Target Offer/6\346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" similarity index 98% rename from "Target Offer/\346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" rename to "Target Offer/6\346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" index a33dbe0..78a26d3 100644 --- "a/Target Offer/\346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" +++ "b/Target Offer/6\346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227.py" @@ -39,7 +39,7 @@ def minNumberInRotateArray2(self, rotateArray): if rear - front == 1: midIndex = rear break - midIndex = (front + rear) // 2 + midIndex = (front + rear) >> 1 if rotateArray[front] == rotateArray[rear] and rotateArray[front] == rotateArray[midIndex]: return self.MinInOrder(rotateArray, front, rear) diff --git "a/Target Offer/\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" "b/Target Offer/7\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" similarity index 84% rename from "Target Offer/\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" rename to "Target Offer/7\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" index f1c581b..afd6524 100644 --- "a/Target Offer/\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" +++ "b/Target Offer/7\346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227.py" @@ -28,6 +28,8 @@ def jumpFloorII(self, number): return ans # 矩形覆盖 + # 第一次摆放一块1*2的小矩阵,则摆放方法总共为f(target-2) + # 因为,摆放了一块1*2的小矩阵(用√√表示),对应下方的1*2(用××表示)摆放方法就确定了,所以为f(targte-2) def rectCover(self, number): if number == 0: diff --git "a/Target Offer/\344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260.py" "b/Target Offer/8\344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260.py" similarity index 100% rename from "Target Offer/\344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260.py" rename to "Target Offer/8\344\272\214\350\277\233\345\210\266\344\270\2551\347\232\204\344\270\252\346\225\260.py" diff --git "a/Target Offer/\346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271.py" "b/Target Offer/9\346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271.py" similarity index 100% rename from "Target Offer/\346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271.py" rename to "Target Offer/9\346\225\260\345\200\274\347\232\204\346\225\264\346\225\260\346\254\241\346\226\271.py" From 60970168009acf2f0df4379e3b45456ebed11023 Mon Sep 17 00:00:00 2001 From: cloisonne Date: Thu, 25 Oct 2018 21:41:41 +0800 Subject: [PATCH 6/7] update --- ...254k\344\270\252\347\273\223\347\202\271.py" | 0 ...\215\350\275\254\351\223\276\350\241\250.py" | 16 ++++++++++++++++ ...\217\347\232\204\351\223\276\350\241\250.py" | 0 ...\204\345\255\220\347\273\223\346\236\204.py" | 0 ...\221\347\232\204\351\225\234\345\203\217.py" | 0 ...\223\345\215\260\347\237\251\351\230\265.py" | 0 ...\275\346\225\260\347\232\204\346\240\210.py" | 0 ...\271\345\207\272\345\272\217\345\210\227.py" | 17 ++++++++++++++++- ...\260\344\272\214\345\217\211\346\240\221.py" | 0 ...\215\345\216\206\345\272\217\345\210\227.py" | 2 ++ 10 files changed, 34 insertions(+), 1 deletion(-) rename "Target Offer/\351\223\276\350\241\250\344\270\255\345\200\222\346\225\260\347\254\254k\344\270\252\347\273\223\347\202\271.py" => "Target Offer/11\351\223\276\350\241\250\344\270\255\345\200\222\346\225\260\347\254\254k\344\270\252\347\273\223\347\202\271.py" (100%) rename "Target Offer/\345\217\215\350\275\254\351\223\276\350\241\250.py" => "Target Offer/12\345\217\215\350\275\254\351\223\276\350\241\250.py" (75%) rename "Target Offer/\345\220\210\345\271\266\344\270\244\344\270\252\346\216\222\345\272\217\347\232\204\351\223\276\350\241\250.py" => "Target Offer/13\345\220\210\345\271\266\344\270\244\344\270\252\346\216\222\345\272\217\347\232\204\351\223\276\350\241\250.py" (100%) rename "Target Offer/\346\240\221\347\232\204\345\255\220\347\273\223\346\236\204.py" => "Target Offer/14\346\240\221\347\232\204\345\255\220\347\273\223\346\236\204.py" (100%) rename "Target Offer/\344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217.py" => "Target Offer/15\344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217.py" (100%) rename "Target Offer/\351\241\272\346\227\266\351\222\210\346\211\223\345\215\260\347\237\251\351\230\265.py" => "Target Offer/16\351\241\272\346\227\266\351\222\210\346\211\223\345\215\260\347\237\251\351\230\265.py" (100%) rename "Target Offer/\345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210.py" => "Target Offer/17\345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210.py" (100%) rename "Target Offer/\346\240\210\347\232\204\345\216\213\345\205\245\345\274\271\345\207\272\345\272\217\345\210\227.py" => "Target Offer/18\346\240\210\347\232\204\345\216\213\345\205\245\345\274\271\345\207\272\345\272\217\345\210\227.py" (76%) rename "Target Offer/\344\273\216\344\270\212\345\276\200\344\270\213\346\211\223\345\215\260\344\272\214\345\217\211\346\240\221.py" => "Target Offer/19\344\273\216\344\270\212\345\276\200\344\270\213\346\211\223\345\215\260\344\272\214\345\217\211\346\240\221.py" (100%) rename "Target Offer/\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\347\232\204\345\220\216\347\273\255\351\201\215\345\216\206\345\272\217\345\210\227.py" => "Target Offer/20\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\347\232\204\345\220\216\347\273\255\351\201\215\345\216\206\345\272\217\345\210\227.py" (99%) diff --git "a/Target Offer/\351\223\276\350\241\250\344\270\255\345\200\222\346\225\260\347\254\254k\344\270\252\347\273\223\347\202\271.py" "b/Target Offer/11\351\223\276\350\241\250\344\270\255\345\200\222\346\225\260\347\254\254k\344\270\252\347\273\223\347\202\271.py" similarity index 100% rename from "Target Offer/\351\223\276\350\241\250\344\270\255\345\200\222\346\225\260\347\254\254k\344\270\252\347\273\223\347\202\271.py" rename to "Target Offer/11\351\223\276\350\241\250\344\270\255\345\200\222\346\225\260\347\254\254k\344\270\252\347\273\223\347\202\271.py" diff --git "a/Target Offer/\345\217\215\350\275\254\351\223\276\350\241\250.py" "b/Target Offer/12\345\217\215\350\275\254\351\223\276\350\241\250.py" similarity index 75% rename from "Target Offer/\345\217\215\350\275\254\351\223\276\350\241\250.py" rename to "Target Offer/12\345\217\215\350\275\254\351\223\276\350\241\250.py" index c8e2bb8..0af2a15 100644 --- "a/Target Offer/\345\217\215\350\275\254\351\223\276\350\241\250.py" +++ "b/Target Offer/12\345\217\215\350\275\254\351\223\276\350\241\250.py" @@ -9,6 +9,22 @@ def __init__(self, x): self.val = x self.next = None class Solution: + + def ReverseList(self, pHead): + # write code here + if not pHead: + return + elif not pHead.next: + return pHead + pre = None + nextt = None + while pHead: + nextt = pHead.next + pHead.next = pre + pre = pHead + pHead = nextt + return pre + # 返回ListNode def ReverseList(self, pHead): pReversedHead = None diff --git "a/Target Offer/\345\220\210\345\271\266\344\270\244\344\270\252\346\216\222\345\272\217\347\232\204\351\223\276\350\241\250.py" "b/Target Offer/13\345\220\210\345\271\266\344\270\244\344\270\252\346\216\222\345\272\217\347\232\204\351\223\276\350\241\250.py" similarity index 100% rename from "Target Offer/\345\220\210\345\271\266\344\270\244\344\270\252\346\216\222\345\272\217\347\232\204\351\223\276\350\241\250.py" rename to "Target Offer/13\345\220\210\345\271\266\344\270\244\344\270\252\346\216\222\345\272\217\347\232\204\351\223\276\350\241\250.py" diff --git "a/Target Offer/\346\240\221\347\232\204\345\255\220\347\273\223\346\236\204.py" "b/Target Offer/14\346\240\221\347\232\204\345\255\220\347\273\223\346\236\204.py" similarity index 100% rename from "Target Offer/\346\240\221\347\232\204\345\255\220\347\273\223\346\236\204.py" rename to "Target Offer/14\346\240\221\347\232\204\345\255\220\347\273\223\346\236\204.py" diff --git "a/Target Offer/\344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217.py" "b/Target Offer/15\344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217.py" similarity index 100% rename from "Target Offer/\344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217.py" rename to "Target Offer/15\344\272\214\345\217\211\346\240\221\347\232\204\351\225\234\345\203\217.py" diff --git "a/Target Offer/\351\241\272\346\227\266\351\222\210\346\211\223\345\215\260\347\237\251\351\230\265.py" "b/Target Offer/16\351\241\272\346\227\266\351\222\210\346\211\223\345\215\260\347\237\251\351\230\265.py" similarity index 100% rename from "Target Offer/\351\241\272\346\227\266\351\222\210\346\211\223\345\215\260\347\237\251\351\230\265.py" rename to "Target Offer/16\351\241\272\346\227\266\351\222\210\346\211\223\345\215\260\347\237\251\351\230\265.py" diff --git "a/Target Offer/\345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210.py" "b/Target Offer/17\345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210.py" similarity index 100% rename from "Target Offer/\345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210.py" rename to "Target Offer/17\345\214\205\345\220\253min\345\207\275\346\225\260\347\232\204\346\240\210.py" diff --git "a/Target Offer/\346\240\210\347\232\204\345\216\213\345\205\245\345\274\271\345\207\272\345\272\217\345\210\227.py" "b/Target Offer/18\346\240\210\347\232\204\345\216\213\345\205\245\345\274\271\345\207\272\345\272\217\345\210\227.py" similarity index 76% rename from "Target Offer/\346\240\210\347\232\204\345\216\213\345\205\245\345\274\271\345\207\272\345\272\217\345\210\227.py" rename to "Target Offer/18\346\240\210\347\232\204\345\216\213\345\205\245\345\274\271\345\207\272\345\272\217\345\210\227.py" index 1350125..9d9da61 100644 --- "a/Target Offer/\346\240\210\347\232\204\345\216\213\345\205\245\345\274\271\345\207\272\345\272\217\345\210\227.py" +++ "b/Target Offer/18\346\240\210\347\232\204\345\216\213\345\205\245\345\274\271\345\207\272\345\272\217\345\210\227.py" @@ -44,8 +44,23 @@ def IsPopOrder2(self, pushV, popV): else: return True + def IsPopOrder3(self, pushV, popV): + # write code here + if pushV == [] or popV == []: + return False + stack = [] + for i in pushV: + stack.append(i) + while len(stack) and stack[-1] == popV[0]: + stack.pop() + popV.pop(0) + if len(stack): + return False + else: + return True + pushV = [1, 2, 3, 4, 5] popV = [4, 5, 3, 2, 1] popVF = [4, 5, 2, 1, 3] S = Solution() -print(S.IsPopOrder2(pushV, popVF)) +print(S.IsPopOrder3(pushV, popV)) diff --git "a/Target Offer/\344\273\216\344\270\212\345\276\200\344\270\213\346\211\223\345\215\260\344\272\214\345\217\211\346\240\221.py" "b/Target Offer/19\344\273\216\344\270\212\345\276\200\344\270\213\346\211\223\345\215\260\344\272\214\345\217\211\346\240\221.py" similarity index 100% rename from "Target Offer/\344\273\216\344\270\212\345\276\200\344\270\213\346\211\223\345\215\260\344\272\214\345\217\211\346\240\221.py" rename to "Target Offer/19\344\273\216\344\270\212\345\276\200\344\270\213\346\211\223\345\215\260\344\272\214\345\217\211\346\240\221.py" diff --git "a/Target Offer/\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\347\232\204\345\220\216\347\273\255\351\201\215\345\216\206\345\272\217\345\210\227.py" "b/Target Offer/20\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\347\232\204\345\220\216\347\273\255\351\201\215\345\216\206\345\272\217\345\210\227.py" similarity index 99% rename from "Target Offer/\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\347\232\204\345\220\216\347\273\255\351\201\215\345\216\206\345\272\217\345\210\227.py" rename to "Target Offer/20\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\347\232\204\345\220\216\347\273\255\351\201\215\345\216\206\345\272\217\345\210\227.py" index b1533eb..8798c78 100644 --- "a/Target Offer/\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\347\232\204\345\220\216\347\273\255\351\201\215\345\216\206\345\272\217\345\210\227.py" +++ "b/Target Offer/20\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\347\232\204\345\220\216\347\273\255\351\201\215\345\216\206\345\272\217\345\210\227.py" @@ -13,8 +13,10 @@ def VerifySquenceOfBST(self, sequence): root = sequence[-1] length = len(sequence) + if min(sequence) > root or max(sequence) < root: return True + index = 0 # 二叉搜索树的左子树结点小于根节点 ''' From d2565d8f9136604132bba0109659ff48266c7fb3 Mon Sep 17 00:00:00 2001 From: cloisonne Date: Wed, 31 Oct 2018 13:50:09 +0800 Subject: [PATCH 7/7] update --- C++/ClassDemo.cpp | 43 +++++++++++++++++++ C++/InsertSort.cpp | 25 +++++++++++ SelectionSort.py | 12 ------ BubbleSort.py => Sort/BubbleSort.py | 21 ++++++++- InsertionSort.py => Sort/InsertionSort.py | 13 ++++++ QuickSort.py => Sort/QuickSort.py | 21 +++++++++ Sort/SelectionSort.py | 27 ++++++++++++ ...74\347\232\204\350\267\257\345\276\204.py" | 0 ...50\347\232\204\345\244\215\345\210\266.py" | 0 ...14\345\220\221\351\223\276\350\241\250.py" | 0 ...27\345\222\214\347\273\204\345\220\210.py" | 3 +- ...12\347\232\204\346\225\260\345\255\227.py" | 0 12 files changed, 151 insertions(+), 14 deletions(-) create mode 100644 C++/ClassDemo.cpp create mode 100644 C++/InsertSort.cpp delete mode 100644 SelectionSort.py rename BubbleSort.py => Sort/BubbleSort.py (58%) rename InsertionSort.py => Sort/InsertionSort.py (68%) rename QuickSort.py => Sort/QuickSort.py (72%) create mode 100644 Sort/SelectionSort.py rename "Target Offer/\344\272\214\345\217\211\346\240\221\344\270\255\345\222\214\344\270\272\346\237\220\344\270\200\345\200\274\347\232\204\350\267\257\345\276\204.py" => "Target Offer/21\344\272\214\345\217\211\346\240\221\344\270\255\345\222\214\344\270\272\346\237\220\344\270\200\345\200\274\347\232\204\350\267\257\345\276\204.py" (100%) rename "Target Offer/\345\244\215\346\235\202\351\223\276\350\241\250\347\232\204\345\244\215\345\210\266.py" => "Target Offer/22\345\244\215\346\235\202\351\223\276\350\241\250\347\232\204\345\244\215\345\210\266.py" (100%) rename "Target Offer/\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\344\270\216\345\217\214\345\220\221\351\223\276\350\241\250.py" => "Target Offer/23\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\344\270\216\345\217\214\345\220\221\351\223\276\350\241\250.py" (100%) rename "Target Offer/\345\255\227\347\254\246\344\270\262\347\232\204\346\216\222\345\210\227\345\222\214\347\273\204\345\220\210.py" => "Target Offer/24\345\255\227\347\254\246\344\270\262\347\232\204\346\216\222\345\210\227\345\222\214\347\273\204\345\220\210.py" (97%) rename "Target Offer/\346\225\260\347\273\204\344\270\255\345\207\272\347\216\260\346\254\241\346\225\260\350\266\205\350\277\207\344\270\200\345\215\212\347\232\204\346\225\260\345\255\227.py" => "Target Offer/25\346\225\260\347\273\204\344\270\255\345\207\272\347\216\260\346\254\241\346\225\260\350\266\205\350\277\207\344\270\200\345\215\212\347\232\204\346\225\260\345\255\227.py" (100%) diff --git a/C++/ClassDemo.cpp b/C++/ClassDemo.cpp new file mode 100644 index 0000000..f437125 --- /dev/null +++ b/C++/ClassDemo.cpp @@ -0,0 +1,43 @@ +#include +using namespace std; + +class Animal +{ + protected: + char name[4] = "0"; + int age = 0; + int height = 0; + double weight = 0; + + public: + Animal(){} + ~Animal(){} + virtual void Walk() = 0; + virtual void Eat() = 0; + virtual void Sleep() = 0; +}; + +class Dog: public Animal +{ + public: + virtual void Walk(){}; + virtual void Eat(){}; + virtual void Sleep(){}; +}; + +class Cat: public Animal +{ + public: + virtual void Walk(){} + virtual void Eat(){} + virtual void Sleep(){} +}; + +int main() +{ + Animal *animal; + Dog dog; + animal = &dog; + animal->Walk(); + return 0; +} \ No newline at end of file diff --git a/C++/InsertSort.cpp b/C++/InsertSort.cpp new file mode 100644 index 0000000..550ed76 --- /dev/null +++ b/C++/InsertSort.cpp @@ -0,0 +1,25 @@ +#include +#include +using namespace std; + +void InsertSort(vector &num){ + for(int i=1; i0 && num[position-1]>cur){ + num[position] = num[position-1]; + position--; + } + num[position] = cur; + } +} + +int main() +{ + int a[9] = {54,26,93,17,77,31,44,55,20}; + vector num(a, a+9); + InsertSort(num); + for(int i=0;i<=num.size()-1;i++) + cout<array[j+1]: + array[j],array[j+1] = array[j+1],array[j] + return array + +def modiBuddleSort2(array): + flag = True + i = 0 + while i!=len(array) and flag: + flag = False + for j in range(len(array)-1-i): + if array[j]>array[j+1]: + array[j],array[j+1] = array[j+1],array[j] + flag = True + i+=1 + return array + +print(modiBuddleSort2(alist)) \ No newline at end of file diff --git a/InsertionSort.py b/Sort/InsertionSort.py similarity index 68% rename from InsertionSort.py rename to Sort/InsertionSort.py index 6e47d81..192f128 100644 --- a/InsertionSort.py +++ b/Sort/InsertionSort.py @@ -1,3 +1,5 @@ +# 时间复杂度 最好是O(n) 最差是O(n^2) + def insertionSort(alist): for key, item in enumerate(alist): index = key @@ -22,4 +24,15 @@ def insertionSort2(alist): return alist +def insertSort3(array): + for i in range(1,len(array)): + cur = array[i] + index = i + + while index>0 and array[index-1]>cur: + array[index-1] = array[index] + index-=1 + array[index] = cur + return array + print(insertionSort2(alist)) diff --git a/QuickSort.py b/Sort/QuickSort.py similarity index 72% rename from QuickSort.py rename to Sort/QuickSort.py index 59b0972..d6d0824 100644 --- a/QuickSort.py +++ b/Sort/QuickSort.py @@ -30,6 +30,27 @@ def partition(alist, first, last): alist[rightmark], alist[first] = alist[first], alist[rightmark] return rightmark +def quickSort2(array,start,end): + if start<=end: + return + k = array[start] + left = start + right = end + + while leftk: + right-=1 + array[left],array[right] = array[right],array[left] + + while leftarray[j]: + array[i],array[j] = array[j],array[i] + return array + +def modiselectionSort(array): + for i in range(len(array)): + index = i + for j in range(i,len(array)): + if array[i]>array[j]: + index = j + array[i],array[index] = array[index],array[i] + +alist = [54,26,93,17,77,31,44,55,20] +print(selectionSort(alist)) \ No newline at end of file diff --git "a/Target Offer/\344\272\214\345\217\211\346\240\221\344\270\255\345\222\214\344\270\272\346\237\220\344\270\200\345\200\274\347\232\204\350\267\257\345\276\204.py" "b/Target Offer/21\344\272\214\345\217\211\346\240\221\344\270\255\345\222\214\344\270\272\346\237\220\344\270\200\345\200\274\347\232\204\350\267\257\345\276\204.py" similarity index 100% rename from "Target Offer/\344\272\214\345\217\211\346\240\221\344\270\255\345\222\214\344\270\272\346\237\220\344\270\200\345\200\274\347\232\204\350\267\257\345\276\204.py" rename to "Target Offer/21\344\272\214\345\217\211\346\240\221\344\270\255\345\222\214\344\270\272\346\237\220\344\270\200\345\200\274\347\232\204\350\267\257\345\276\204.py" diff --git "a/Target Offer/\345\244\215\346\235\202\351\223\276\350\241\250\347\232\204\345\244\215\345\210\266.py" "b/Target Offer/22\345\244\215\346\235\202\351\223\276\350\241\250\347\232\204\345\244\215\345\210\266.py" similarity index 100% rename from "Target Offer/\345\244\215\346\235\202\351\223\276\350\241\250\347\232\204\345\244\215\345\210\266.py" rename to "Target Offer/22\345\244\215\346\235\202\351\223\276\350\241\250\347\232\204\345\244\215\345\210\266.py" diff --git "a/Target Offer/\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\344\270\216\345\217\214\345\220\221\351\223\276\350\241\250.py" "b/Target Offer/23\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\344\270\216\345\217\214\345\220\221\351\223\276\350\241\250.py" similarity index 100% rename from "Target Offer/\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\344\270\216\345\217\214\345\220\221\351\223\276\350\241\250.py" rename to "Target Offer/23\344\272\214\345\217\211\346\220\234\347\264\242\346\240\221\344\270\216\345\217\214\345\220\221\351\223\276\350\241\250.py" diff --git "a/Target Offer/\345\255\227\347\254\246\344\270\262\347\232\204\346\216\222\345\210\227\345\222\214\347\273\204\345\220\210.py" "b/Target Offer/24\345\255\227\347\254\246\344\270\262\347\232\204\346\216\222\345\210\227\345\222\214\347\273\204\345\220\210.py" similarity index 97% rename from "Target Offer/\345\255\227\347\254\246\344\270\262\347\232\204\346\216\222\345\210\227\345\222\214\347\273\204\345\220\210.py" rename to "Target Offer/24\345\255\227\347\254\246\344\270\262\347\232\204\346\216\222\345\210\227\345\222\214\347\273\204\345\220\210.py" index 7b16f6d..f36535f 100644 --- "a/Target Offer/\345\255\227\347\254\246\344\270\262\347\232\204\346\216\222\345\210\227\345\222\214\347\273\204\345\220\210.py" +++ "b/Target Offer/24\345\255\227\347\254\246\344\270\262\347\232\204\346\216\222\345\210\227\345\222\214\347\273\204\345\220\210.py" @@ -47,6 +47,7 @@ def group(self, ss): return pStr ss = 'acb' +sss = 'aabc' S = Solution() # print(S.Permutation(ss)) -print(S.group(ss)) \ No newline at end of file +print(S.Permutation(sss)) \ No newline at end of file diff --git "a/Target Offer/\346\225\260\347\273\204\344\270\255\345\207\272\347\216\260\346\254\241\346\225\260\350\266\205\350\277\207\344\270\200\345\215\212\347\232\204\346\225\260\345\255\227.py" "b/Target Offer/25\346\225\260\347\273\204\344\270\255\345\207\272\347\216\260\346\254\241\346\225\260\350\266\205\350\277\207\344\270\200\345\215\212\347\232\204\346\225\260\345\255\227.py" similarity index 100% rename from "Target Offer/\346\225\260\347\273\204\344\270\255\345\207\272\347\216\260\346\254\241\346\225\260\350\266\205\350\277\207\344\270\200\345\215\212\347\232\204\346\225\260\345\255\227.py" rename to "Target Offer/25\346\225\260\347\273\204\344\270\255\345\207\272\347\216\260\346\254\241\346\225\260\350\266\205\350\277\207\344\270\200\345\215\212\347\232\204\346\225\260\345\255\227.py"