- 博客(72)
- 收藏
- 关注
翻译 TVM安装
源码:wget http://tvm.d2l.ai/d2l-tvm.zipunzip d2l-tvm.zip -d d2l-tvm也可以到GitHub搜索tvm,然后需要把在3rd文件夹里面空的依赖下载好之后放在该文件夹然后:mkdir buildcp config.cmake build/gedit build/config.cmake设置:set(USE_LLVM ON)# 如果想使用cuda# set(USE_CUDA ON)最后:cmake ..
2020-09-10 15:16:51
245
转载 CUDA中的常量内存__constant__和cudaMemcpyToSymbol
__constant__声明内存为常量内存使用常量内存可以提升运算性能的原因如下:对常量内存的单次读操作可以广播到其他的“邻近(nearby)”线程,这将节约15次读取操作; 高速缓存。常量内存的数据将缓存起来,因此对于相同地址的连续操作将不会产生额外的内存通信量;在CUDA架构中,线程束是指一个包含32个线程的集合,这个线程集合被“编织在一起”并且以“步调一致(Lockstep)”的形式执行。当处理常量内存时,NVIDIA硬件将把单次内存读取操作广播到每个半线程束(Half-Warp).
2020-05-27 16:44:20
2911
原创 合并两个有序数组
要求原地合并,我的做法比较复杂,双指针,比较i和j位置的值,若i位置值大于j位置值,则互换,并对j位置值排序,代码为:class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ Do not return anyt...
2020-03-17 14:40:49
168
原创 将有序数组转换为二叉搜索树
# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def sortedArrayT...
2020-03-17 11:43:26
172
原创 验证二叉搜索树
# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def isValidBST(s...
2020-03-16 15:57:56
127
原创 环形链表
空间复杂度O(1): 快指针追上慢指针即可确定有回环# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def hasCycle(sel...
2020-03-09 22:05:45
135
原创 回文链表
题目说要时间复杂度O(n),空间复杂度O(1)的解法,我没做出来。。。我的解法就是简单的把问题转化为回文数列:速度倒是很快,就是空间占用很高使用了一个result保存所有值# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# ...
2020-03-09 20:26:37
126
原创 合并两个有序链表
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def mergeTwoLists(self, l1: ListNode, l2: Li...
2020-03-09 18:52:35
174
原创 删除链表的倒数第N个节点
我的方法是用一个队列,保存后N个节点,但是内存消耗比较大,方法如下:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def remo...
2020-03-09 13:41:45
145
原创 外观数列
class Solution: def countAndSay(self, n: int) -> str: if n == 1: return "1" else: return self.nextItem(self.countAndSay(n-1)) ...
2020-03-08 15:02:07
245
原创 字符串转换整数 (atoi)
利用正则表达式可以很方便解决:正则式为:r"^[\+\-]?[0-9]+"其中:^表示从开头开始匹配 [\+\-]表示字符可以是+ or - ?表示可以没有+ or - [0-9]代表从0-9的数字 +代表任意位数正则式好久没用到了就忘了,还是要复习一下,毕竟对于字符串问题很容易解决class Solution: def myAtoi(self, str: ...
2020-03-08 13:41:25
142
原创 验证回文串
class Solution: def isPalindrome(self, s: str) -> bool: s = s.lower() i = 0 j = len(s) - 1 string = "abcdefghijklmnopqrstuvwxyz0123456789" whil...
2020-03-04 16:17:08
197
原创 有效的字母异位词
collections中的Counter真是香。。。class Solution: def isAnagram(self, s: str, t: str) -> bool: from collections import Counter sCounter = Counter([i for i in s]) tCo...
2020-03-04 15:46:05
188
1
原创 字符串中的第一个唯一字符
class Solution: def firstUniqChar(self, s: str) -> int: if len(s) == 0: return -1 visited = {} #保存奇数重复的字母 visited_list = {} #保存所有重复的字母 for i, char i...
2020-03-04 15:23:47
212
原创 整数反转
字符串也可以[::-1]反转,非常神奇(也可以使用指针方法反转):class Solution: def reverse(self, x: int) -> int: string = str(x)[::-1] result = int(string) if x >= 0 else int(string[:-1]) * (-...
2020-03-02 22:35:12
146
原创 旋转图像
顺时针90°旋转先转置,再对每行反转逆时针90°相反class Solution: def rotate(self, matrix: List[List[int]]) -> None: """ Do not return anything, modify matrix in-place instead. """ ...
2020-03-02 21:58:48
220
1
原创 有效的数独
因为每次按行遍历,因此建立一个行哈希表,9个列哈希表,和3个方格哈希表,通过查询元素是否在相应表中来判断:class Solution: def isValidSudoku(self, board: List[List[str]]) -> bool: columnsValid = [{}, {}, {}, {}, {}, {}, {}, {}, {}] ...
2020-02-19 17:23:13
136
原创 两数之和
建立对应的哈希表,key=数,value=索引,遍历一次,每次找target-num即可:class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: temp = {} for i, num in enumerate(...
2020-02-19 16:21:18
131
原创 移动零
由删除排序数组中的重复项来的灵感,都是交换类题目,双指针,k之前的都是有效位class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ ...
2020-02-19 11:22:52
148
原创 两个数组的交集 II
解法是使用字典保存nums1和其计数,再遍历nums2即可class Solution: def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]: v1 = {} for n1 in nums1: try: v...
2020-02-19 10:52:08
103
原创 只出现一次的数字
哈希表法:class Solution: def singleNumber(self, nums: List[int]) -> int: visited = {} for num in nums: try: visited.pop(num) ...
2020-02-19 10:07:22
112
原创 存在重复元素
使用哈希表(字典),出现访问错误会报KeyError,若未出现即返回True,否则返回False,复杂度O(N)class Solution: def containsDuplicate(self, nums: List[int]) -> bool: visited = {} for num in nums: try: ...
2020-02-19 09:26:53
118
原创 买卖股票的最佳时机 II
想法是取到低峰和高峰相减,我的解法:class Solution: def maxProfit(self, prices: List[int]) -> int: if not prices: return 0 benefit = 0 i ...
2020-02-18 17:48:50
163
原创 删除排序数组中的重复项
因为是排序数据,所以极其简单:class Solution: def removeDuplicates(self, nums: List[int]) -> int: if nums: k = 0 for num in nums[1:]: i...
2020-02-18 17:07:14
130
原创 逆波兰表达式求值
本想用字典代替if判断会快,然而。。。并不会:class Solution: def __init__(self): self.operator = { '+': self.add, '-': self.sub, '*': self.mul, '/': self....
2020-02-08 16:47:27
212
原创 每日温度
队列解法:(速度慢)class Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: len_T = len(T) from collections import deque result = deq...
2020-02-07 17:25:04
191
原创 有效的括号
class Solution: def isValid(self, s: str) -> bool: if s is None: return True stack = [] flag = { ']': '[', ')':...
2020-02-05 16:52:00
150
原创 最小栈
这个题本来用的每次求最小值的方法,后来看了大佬的才想明白只需要每次在__minstack中记录最小,由于栈是先进后出规则,因此,小的还没有弹出的时候弹出元素不影响最小值。class MinStack: def __init__(self): """ initialize your data structure here. """ ...
2020-02-05 15:04:15
135
原创 完全平方数
先算小于N的完全平方数,再用这些数做广度优先:class Solution: def numSquares(self, n: int) -> int: if n == 0: return 0 tempNum = [] x = 1 i = ...
2020-02-04 12:22:43
320
原创 岛屿数量
BFS方法,每次发现为‘1’的岛屿才搜索,且只要搜到连通域就将其置‘0’:class Solution: def numIslands(self, grid: List[List[str]]) -> int: len_i = len(grid) if len_i == 0: return 0 len_j ...
2020-01-13 20:42:59
263
原创 设计循环队列
你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。 Front: 从队首获取元素。如果队列为空,返回 -1 。 Rear: 获取队尾元素。如果队列为空,返回 -1 。 enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。 deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。 isEmpty()...
2020-01-12 20:26:06
306
原创 二叉树的最近公共祖先
还可以再优化,使用递归两步解决,第一步找出p的所有父节点,第二步从p的最后一个父节点开始依次找q# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self....
2020-01-12 15:17:04
139
原创 填充每个节点的下一个右侧节点指针 II
迭代方法,(遇到了一个超长的测试用例,结果超时了。。。。。):"""# Definition for a Node.class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None): self.val = val...
2020-01-11 16:02:23
250
原创 填充每个节点的下一个右侧节点指针
我的方法,使用颜色层次遍历法,依次填next:"""# Definition for a Node.class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None): self.val = val ...
2020-01-09 21:21:12
143
原创 从中序与后序遍历序列构造二叉树
由于后序遍历时最后节点是根节点,接着是右子树的根节点,一直往下。。。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None...
2020-01-09 17:45:26
163
原创 路径总和
递归,直接把问题转换为叶子节点的val是否等于sum(注:使用return 递归 or 递归的方法将叶子节点的返回值传递至root节点)。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left =...
2020-01-09 16:14:48
175
原创 对称二叉树
递归解法:我的解法是层序遍历然后每层取eq(line,line[::-1]):# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right =...
2020-01-09 13:44:32
130
原创 二叉树的最大深度
# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def maxDepth(sel...
2020-01-08 21:24:52
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人