- 博客(65)
- 收藏
- 关注
转载 CNN中为什么可以使用卷积层和池化层取得好的结果
转自http://www.tensorflownews.com/2018/03/22/cnn/对于CNN的卷积、池化操作,其实很多文章都会详细的介绍,但卷积和池化的意义是什么,很多文章都没有明确给出解释。可能会有人认为卷积和池化可以很大程度的减少权重参数,但只是因为这个原因吗?显然不是的,接下来将讲解CNN是如何实现有效的分类从而理解卷积和池化的意义。用深度学习解决图像识别问题,从直观上讲...
2018-12-18 11:01:22 3332
原创 leetcode5 最长回文子串
'''递推式:1 一般: S[i+1] == S[j-1] and j>i and j-i == len(S[i+1,j-1])2 初始化dp矩阵对角线的值为 true,相邻两个元素相等时dp[i][i+1] 为true ,初始化回文串起始位置和长度。'''def longestPalindrome(s): n = len(s) if s == '': ...
2018-10-27 12:06:22 156
原创 leetcode53 最大子序和 &leetcode 152 乘积最大子序列【都要求是连续的】
leetcode53def maxSubArray(self, nums): """ 最大和的连续子数组(子数组最少包含一个元素),返回其最大和 """ max_num = -2147483648 sum = 0 for j in range(len(nums)): sum...
2018-10-27 05:05:07 173
原创 leetcode 10
def trap(self, height): """ left_max 存左边最大的值 right存右边最大的值 left < right left移动 否则right移动 """ if not height: return 0 left,right,res = 0,...
2018-10-20 20:28:40 284
原创 leetcode10
def isMatch(s, p): m,n = len(s),len(p) dp = [[False for i in range(m+1)] for j in range(n+1)] dp[0][0] = True for i in range(0,n): for j in range(1,m): if s[j] == ...
2018-10-20 19:08:07 330
原创 leetcode77组合
def _combine(self, n, k, start, nums, result): if len(nums) == k: result.append(nums.copy()) return # k - len(nums) for i in range(start, n - (k -...
2018-10-19 17:44:38 147
原创 python字典根据value取key
list(dic.keys())[list(dic.values()).index(1)]list(dic.keys())[list(dic.values()).index(1)]
2018-10-19 00:15:47 5078
原创 leetcode404 左叶子之和
def sumOfLeftLeaves(self, root): """ 判断左叶子节点是难点 """ res = 0 if not root: return 0 if root.left and not root.left.left and not root.left.ri...
2018-10-18 22:01:17 144
原创 leetcode 112. 路径总和
def hasPathSum(self, root, sum): """ 1.判断条件:如果判断sum==0为true,会出现不是叶子节点的情况 2.判断条件是叶子节点的val == sum """ if not root: return False if not root.l...
2018-10-18 21:40:02 108
原创 leetcode101 对称二叉树
def isSymmetric(self, root): if root is None: return True return self.help(root.left, root.right) def help(self, left, right): ’‘’ 终止条件是左子树和右子树是叶...
2018-10-18 20:25:28 104
原创 leetcode100. 相同的树
def isSameTree(self, p, q): """ 递归实现: 边界条件的判断: 1.如果都为空 返回true 2.如果其中一个为空另一个不为空,返回false 3.如果val值不相等返回空 """ if not p and not q: ...
2018-10-18 19:30:48 108
原创 leetcode226. 翻转二叉树
def invertTree(self, root): """ 递归实现 """ if not root: return None t = root.left root.left = root.right root.right = t self....
2018-10-18 19:06:27 111
原创 leetcode 104二叉树的最大深度 & 111二叉树最小深度
def maxDepth(root): """ 非递归,用栈表示,stack栈存储节点 """ if not root: return 0 count = 0 stack = [root] ####存放每一层的子节点 tmp = [] ###临时存放每一层的...
2018-10-18 18:55:52 132
原创 leetcode88. 合并两个有序数组
def merge(self, nums1, m, nums2, n): """ 关键点是nums1原数组的长度是m+n,肯定要在nums1上操作效率高 如果正向比较的话移动次数很多,逆向的话不需要移动 注意m,n是以1开头的 """ while m > 0 and n > 0: ...
2018-10-06 13:20:49 177
原创 leetcode 479用 Rand7() 实现 Rand10()
rand7()表示随机等概率的产生1-7之间的任一个数要用rand7产生rand10可以考虑用七进制转化为十进制扩大数字范围,基本思路是产生randN,N是10的倍数。class Solution: def rand10(self): """ 最后的返回结果记得加1 """ res = self.rand40() ...
2018-10-06 12:01:34 970
原创 leetcode 120. 三角形最小路径和
def minimumTotal(triangle): """ 从下往上递推 一维动态规划 先保存最后一行元素作为初始值,再往上依次递推, 递推式:tmp[j] = min(tmp[j],tmp[j+1])+triangle[i][j] 其中i表示第i行,从n-2行开始,三角形有规律每行元素的个数=第几行+1(0行开始) """ n = l...
2018-10-05 19:51:32 94
转载 leetcode 204. 计数质数
def countPrimes(self, n): """ list[i:j:m] 表示[i,j]之间索引是m的倍数的值 """ if n == 1 or n == 2: return 0 primes = [True] * n primes[0] = primes[...
2018-10-04 22:22:23 200
原创 leetcode263 & 264丑数
leetcode264def nthUglyNumber(self, n): """ 找到前n个丑数,每次新增到丑数比之前丑数数组的最大值都大,保证这一点,再确保每个与2 3 5 相 乘的数不重复,定义三个指针。 """ if n == 1: return 1 ...
2018-10-04 21:24:23 265
原创 leetcode141. 环形链表 & 142 环形链表 II
def hasCycle(self, head): """ 注意边界越界的问题 设置一个快指针和慢指针,慢指针和快指针相遇就存在环,如果有存在节点的next为None的情况没有环。 """ if not head: return False if not head.next o...
2018-10-04 19:05:38 122
原创 leetcode 74. 搜索二维矩阵 &240. 搜索二维矩阵 II
def searchMatrix(self, matrix, target): """ 容易出错的地方:二分查找的low<=high的条件 二维数组转化为一维数组的方法: 1.extend 循环n行 2.普通的二层循环 3. eval 表达式转化 去掉[] ... ...
2018-10-04 16:57:02 356
原创 leetcode206反转链表 & 92反转链表II
def reverseList(self, head): """ 头插法 """ first = ListNode(0) ###新建链表的头指针 p = first ###保存头指针用于最后返回 while head: t = head.next he...
2018-10-04 16:51:08 90
原创 leetcode102. 二叉树的层次遍历 &111&104&107
def levelOrder(self, root): """ 和普通的层次遍历不一样的地方是输出结果是每层一个列表的形式 """ if not root: return [] res = [] arr = [] stack = [root] ####存放每一...
2018-10-04 10:07:29 198
转载 leetcode19 删除倒数第n个节点
def removeNthFromEnd(self, head, n): """ 定义两个指针,表示两个元素的间隔,间隔大小固定为n-1,两个指针分别为pre,end """ pre = head end = head for _ in range(n): end = end....
2018-10-03 22:48:19 97
原创 leetcode160. 相交链表
def getIntersectionNode(self, headA, headB): """ 核心是理解相交链表的定义:如果相交后面的链表相等即是同一个 """ l1,l2 = self.len(headA),self.len(headB) n = l1 - l2 if n > 0:###...
2018-10-03 22:05:55 126
原创 leetcode445. 两数相加 II---头插法
头插法:每次插入节点从头节点插入尾插法:每次插入节点从尾节点插入def addTwoNumbers(self, l1, l2): """ 注意 1.初始化的是头节点,最后的结果要返回头节点的next 2.节点的插入的时候注意顺序,箭头指向哪个哪个在等号的右边 主要思想是头插法构建链表 ...
2018-10-03 21:37:25 645
原创 leetcode147对链表进行插入排序
def insertionSortList(self, head): """ 对链表进行插入排序,单链表没有前驱指针只能从前往后,添加一个辅助有序链表,依次从前比较 """ new_head = ListNode(0) ###新链表的头指针 new_t = new_head cur = head ...
2018-10-03 20:26:19 216
原创 leetcode 148对链表进行排序
def sortList(self, head): ''' 1. 先把单链表的值存起来排序, 2. 再生成有序链表 ''' listL = [] p = cur = head while cur: listL.append(cur.val) ...
2018-10-03 17:28:19 88
原创 leetcode 21 合并两个有序链表
def mergeTwoLists(self, l1, l2): ''' 新建一个链表,头指针保存,用来存储新的有序链表 ''' if not l1 and not l2: return None head = ListNode(0) ###定义链表的头指针 first = ...
2018-10-03 16:59:55 407
转载 leetcode46全排列
''' 非递归实现 index表示生成index+1大小的临时数组作为子数组 index从1开始,到原始数组的长度 ''' if len(nums) <= 1: return [nums] result = [[nums[0]]] index = 1 while index < len(nums...
2018-10-02 19:40:07 155
原创 DFS非递归
def DFS(root): # 非递归DFS ''' 利用栈完成非递归 1 初始化根节点,标记为访问过,入栈 2 取栈顶元素不出栈: 如果该元素有未访问的邻接点,访问该邻接点,入栈, 如果该元素所有邻接点都被访问或没有邻接点,出栈 ''' ...
2018-10-02 17:51:43 1034
原创 leetcode 454 四数之和II
def fourSumCount( A, B, C, D): ''' 参考第18题思路 只限制与四个数组或固定个数组第时候 ''' n = len(A) d = {} count = 0 for i in range(n): for j in range(n): ...
2018-10-02 14:56:00 147
原创 leetcode15 三数之和
def threeSumClosest(nums,target): result = list() n = len(nums) if n < 3: return result l, r, dif = 0, 0, 0 nums.sort() for i in range(n - 2): if nums[i] &g...
2018-10-02 14:22:54 127
原创 leetcode18 四数之和
def fourSum(nums, target): numLen, res, d = len(nums), set(), {} if numLen < 4: return [] nums.sort() ''' 二层循环遍历任意两个元素对和存放到字典d里并把序号存起来 ''' for p in range(numLen): ...
2018-10-02 14:18:07 161
原创 leetcode171. Excel表列序号
def titleToNumber(s): ''' 26进制转10进制 常规解法 ''' s = s[::-1] sum = 0 for i in range(len(s)): a = letterTofigure(s[i]) sum = float(sum + a * pow(26, i)) retur...
2018-10-02 13:21:20 95
转载 数1问题--参考公众号(架构师之路)
1 位移法(遍历)时间复杂度O(n)2. 求与法:n&(n-1) n 1 0 1 1 0 0 0 0n-1 1 0 1 0 1 1 1 1 n&(n-1) = 1 0 1 0 0 0 0 0 可以起到消除最末尾1的作用n 1 0 1 0 0 0 0 0n-1 1 0 0 1 1 1 1 1n&(n-1) = 1 0 0 ...
2018-10-02 11:53:22 182
原创 topk问题
1. 排序 全局排序时间复杂度O(nlog(n))2. 局部排序:冒泡排序 保证了前k个最大数是有序的 时间复杂度O(n*k)3. 可以不关心前k个数是否有序 堆排 时间复杂度 O(nlog(k)) 堆是经典的求topk的算法4. 随机选择,基于快速排序,快速排序的核心是:i = partition(arr, low, high),其中i返回的是(初始化元素t = arr[0])的位...
2018-10-02 11:29:29 190
原创 leetcode125验证回文串
def isPalindrome(s): ''' 验证回文串很简单 双指针 但是字符串查找回文串比较难 ''' strs = '' if s =='': ###定义空字符是回文串 return True for i in s: if i.isdigit(): strs += i ...
2018-10-01 18:14:16 283
原创 leetcode69. x 的平方根
def mySqrt(x): ''' 二分法查找 O(nlogn) ''' if x == 1: return 1 low, high = 0, int(x / 2) while low <= high: mid = int((low + high) / 2) if mid * mid...
2018-10-01 17:46:35 128
原创 leetcode367. 有效的完全平方数 【简单】
def isPerfectSquare(num): ''' 二分法查找 O(nlogn) ''' if num == 1: return True low,high = 0,int(num/2) while low <= high: mid = int((low + high) / 2) if ...
2018-10-01 17:41:27 647
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人