- 博客(166)
- 资源 (1)
- 收藏
- 关注
原创 检查Tensorflow-gpu和pytorch-gpu是否可用
import tensorflow as tf import torch print(tf.test.is_gpu_available()) print(torch.cuda.is_available())
2020-01-11 13:57:33
613
原创 安装NVIDIA驱动 CUDA CUDNN
1 安装NVIDIA驱动 先进入下载文件夹 chmod +x NVIDIA-Linux-x86_64-430.09.run #目的是设置权限 sudo ./NVIDIA-Linux-x86_64-430.09.run -no-x-check -no-nouveau-check -no-opengl-files 2 安装CUDA ...
2020-01-11 13:50:47
1033
原创 309_最佳买卖股票时机含冷冻期
""" 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。 示例: 输入: [1,2,3,0,2] 输出: 3 解释: 对应的交易状态为: [买入, ...
2020-01-09 16:59:45
148
原创 301_删除无效的括号
""" 删除最小数量的无效括号,使得输入的字符串有效,返回所有可能的结果。 说明: 输入可能包含了除 ( 和 ) 以外的字符。 示例 1: 输入: "()())()" 输出: ["()()()", "(())()"] 示例 2: 输入: "(a)())()" 输出: ["(a)()()", "(a())()"] 示例 3: 输入: ")(" 输出: [""] """ # DFS 效率...
2020-01-08 22:56:08
164
原创 300_最长上升子序列
""" 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明: 可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。 进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗? """...
2020-01-08 21:55:57
153
原创 297_二叉树的序列化与反序列化
""" 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 示例: 你可以将以下二叉树: ...
2020-01-08 16:57:11
321
原创 287_寻找重复数
""" 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 输入: [1,3,4,2,2] 输出: 2 示例 2: 输入: [3,1,3,4,2] 输出: 3 说明: 不能更改原数组(假设数组是只读的)。 只能使用额外的 O(1) 的空间。 时间复杂度小于 O(...
2020-01-08 15:42:16
178
原创 283_移动零
""" 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 """ # 方法一 (自己写的)44% def moveZeroes1(nums): n = len(nums) i =0 ...
2020-01-08 15:02:18
92
原创 279_完全平方数
""" 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. """ # 动态规划 def numSquares(n): dp =...
2020-01-08 11:59:50
233
原创 239_滑动窗口最大值
""" 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 -------...
2020-01-08 10:17:40
108
原创 238_除自身以外数组的乘积
""" 给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 进阶: 你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目...
2020-01-07 23:02:43
115
原创 236_二叉树的最近公共祖先
def lowestCommonAncestor(root, p, q): if not root or root == p or root == q: return root left = lowestCommonAncestor(root.left, p, q) right = lowestCommonAncestor(root.right, p,...
2020-01-07 11:58:51
95
原创 234_回文链表
""" 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? """ def isPalindrome(head): if head is None: return True ...
2020-01-04 23:53:50
94
原创 226_翻转二叉树
""" 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 """ def invertTree(root): if not root: return None def ...
2020-01-04 23:10:57
99
原创 221_最大正方形
""" 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 """ def maximalSquare(matrix): m = len(matrix) if m == 0: return 0 n = le...
2020-01-04 22:28:49
223
原创 208_实现Trie(前缀树)
""" 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。 示例: Trie trie = new Trie(); trie.insert("apple"); trie.search("apple"); // 返回 true trie.search("app"); // 返回 false trie.startsWith("ap...
2020-01-04 18:39:12
189
原创 207_课程表
""" 现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习? 示例 1: 输入: 2, [[1,0]] 输出: true 解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能...
2020-01-04 18:36:51
214
原创 206_反转链表
""" 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL """ def reverseList(head): if head is None: return None prev = None tmp = head ...
2020-01-02 22:10:31
102
原创 200_岛屿数量
""" 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入: 11110 11010 11000 00000 输出: 1 示例 2: 输入: 11000 11000 00100 00011 输出: 3 """ directions = [...
2020-01-02 16:36:32
140
原创 198_打家劫舍
""" 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示例 1: 输入: [2,3,2] 输出: 3 解...
2020-01-01 20:07:26
91
原创 169_多数元素
""" 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 """ def majorityElement1(nums): n = len(nums) ...
2020-01-01 15:53:15
83
原创 160_相交链表
def getIntersectionNode(headA, headB): if not headA or not headB: return None tmp = set() while headA and headB: if headA not in tmp: tmp.add(headA) ...
2020-01-01 14:26:34
83
原创 155_最小栈
""" 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push...
2020-01-01 10:57:29
78
原创 146_LRU缓存机制
# 方法一 使用python有序字典OrderedDict from collections import OrderedDict class LRUCache1: def __init__(self, capacity): self.capacity = capacity self.lrucache = OrderedDict() de...
2019-12-30 22:17:41
119
原创 142_环形链表Ⅱ
def detectCycle(head): if head is None: return None tmp = {} # index = 0 while head : # tmp[head] = index head = head.next # index += 1 if h...
2019-12-26 13:00:38
135
原创 141.环形链表
def hasCycle(head): if head is None: return False tmp = set() while head : tmp.add(head) head = head.next if head in tmp: return True ...
2019-12-26 12:42:36
241
1
原创 140_单词拆分Ⅱ
""" 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明: 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "catsanddog" wordDict = ["cat", "cats", "and", "sand", "dog"]...
2019-12-26 11:18:03
107
原创 139_单词拆分
""" 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可...
2019-12-24 23:12:37
106
原创 137_只出现一次的数字Ⅱ
""" 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,3,2] 输出: 3 示例 2: 输入: [0,1,0,1,0,1,99] 输出: 99 """ def singleNumber1(nums): ans = {}...
2019-12-24 15:26:38
94
原创 136_只出现一次的数字
""" 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 """ def singleNumber1(nums): ans = {} for ...
2019-12-24 15:24:49
93
原创 124_二叉树中的最大路径和
""" 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例 1: 输入: [1,2,3] 1 / \ 2 3 输出: 6 示例 2: 输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 ...
2019-12-21 13:40:01
97
原创 123_买卖股票的最佳时机Ⅲ
""" 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [3,3,5,0,0,3,1,4] 输出: 6 解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获...
2019-12-21 13:38:07
114
原创 107_二叉树的层次遍历Ⅱ
""" 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其自底向上的层次遍历为: [ [15,7], [9,20], [3] ] """ def levelOr...
2019-12-21 13:34:00
93
原创 Failed to get convolution algorithm. This is probably because cuDNN failed to initialize解决办法
Tensorflow Tensorflow: config = tf.ConfigProto() config.gpu_options.allow_growth = True with tf.Session(config=config) as session: Keras config = tf.ConfigProto() config.gpu_options.allow_growth = Tr...
2019-12-19 09:52:10
200
原创 122_买卖股票的最佳时机Ⅱ
""" 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这...
2019-12-18 13:33:02
85
原创 121_买卖股票的最佳时机
""" 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...
2019-12-18 10:43:14
124
原创 114_二叉树展开为链表
""" 给定一个二叉树,原地将它展开为链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 """ def flatten(root): def helper(ro...
2019-12-18 10:02:25
92
原创 105_从前序与中序遍历序列构造二叉树
""" 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 """ def buildTree2(preorder, inorder...
2019-12-17 12:41:02
77
原创 104_二叉树的最大深度
""" 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 """ # 递归 def maxDepth(root): if ...
2019-12-17 09:36:15
66
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人