![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
tan90du
许多人选择编程,首要的原因就是,他们宁愿将时间花在一个公平有序的地方,一个严格的能者上庸者下的地方
展开
-
48.旋转图像
一、先转置然后反转 length = len(matrix) for i in range(length): for j in range(i+1,length): temp = matrix[i][j] matrix[i][j] = matrix[j][i] ma...原创 2019-02-21 15:53:34 · 148 阅读 · 0 评论 -
7. 整数反转
有些读者反映我写的内容太简单,有时候看不懂思路,我以后会记得写好思路。一、数值法1.取出符号位2.%10一次取出x的每一位,再*10变为ans3.判断是否超出 output = 0 if x >= 0: flag=1 else: flag=-1 x = abs(x) ...原创 2019-03-13 16:42:12 · 90 阅读 · 0 评论 -
89格雷编码
1.递归的思想:每一个问题可以转化为小一位前面加上0或者1的问题2.记得加1的时候要反向输出class Solution(object): def grayCode(self, n): """ :type n: int :rtype: List[int] """ return map(lambda x: ...原创 2019-03-26 11:13:32 · 152 阅读 · 0 评论 -
557. 反转字符串中的单词 III
class Solution: def reverseWords(self, s): """ :type s: str :rtype: str """ words = s.split(' ') for i in range(len(w...原创 2019-01-17 10:42:49 · 508 阅读 · 0 评论 -
344.反转字符串
1.列表切片:[1:5:2]取出从0到4的元素,步长为2,当步长为负数就是从后向前取,相当于反转。2.语法: ‘sep’.join(seq)参数说明sep:分隔符。可以为空seq:要连接的元素序列、字符串、元组、字典上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串返回值:返回一个以分隔符sep连接各个元素后生成的字符串...原创 2019-01-16 17:02:10 · 1314 阅读 · 2 评论 -
104.二叉树的最大深度
# 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...原创 2019-01-03 17:11:06 · 245 阅读 · 0 评论 -
2.两数相加
伪代码如下:将当前结点初始化为返回列表的哑结点。将进位 carrycarry 初始化为 00。将 pp 和 qq 分别初始化为列表 l1l1 和 l2l2 的头部。遍历列表 l1l1 和 l2l2 直至到达它们的尾端。将 xx 设为结点 pp 的值。如果 pp 已经到达 l1l1 的末尾,则将其值设置为 00。将 yy 设为结点 qq 的值。如果 qq 已经到达 l2l2 的末尾,则...原创 2019-03-27 10:47:27 · 186 阅读 · 0 评论 -
198. 打家劫舍
动态规划方法1.分解为子问题2.递归定义最优解的值3.计算最优解,自底向上4.选出最优解以第二个示例为例,把最后一个1去掉,剩下的最优解DP【i-1】,加上1之后就有两种情况,nums[i] + dp[i-2]和 dp[i - 1]那个大哪个就是最终解,于是从dp【2】开始把每个最优解存起来,最后选出最大值自己的:class Solution(object): def ro...原创 2019-04-03 10:50:59 · 130 阅读 · 0 评论 -
455. 分发饼干
贪心算法:1.确定问题最优子结构2.设计递归算法3.证明贪心算法安全性4.将递归转换为迭代自己解答:class Solution(object): def findContentChildren(self, g, s): """ :type g: List[int] :type s: List[int] :rty...原创 2019-04-03 16:04:08 · 156 阅读 · 0 评论 -
240. 搜索二维矩阵 II 剑指4:二维数组中的查找
1.从右上角开始,如果target > matrix[m][n],就说明目标值肯定不在第m行,如果target <matrix[m][n],说明目标值肯定不在第n列,循环下去直到最后。class Solution(object): def searchMatrix(self, matrix, target): """ :type matrix...原创 2019-05-21 16:03:22 · 128 阅读 · 0 评论 -
177. 第N高的薪水
自定义函数Create function 函数名(参数)Returns 返回值数据类型[with {Encryption | Schemabinding }][as]beginSQL语句(必须有return 变量或值)End这里的with为附加选项:如果需要对函数体进行加密,可使用WITH ENCRYPTION;如果需要将创建的函数与引用的数据库绑定,可以使用WITH SCH...原创 2019-06-04 11:15:15 · 130 阅读 · 0 评论 -
21. 合并两个有序链表
1.链表判空2.挨个比大小插入新的链表class Solution(object): def mergeTwoLists(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ l3 = L...原创 2019-03-18 15:51:15 · 107 阅读 · 0 评论 -
142. 环形链表 II
# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def detectCycle(self, head):...原创 2019-03-25 12:46:09 · 118 阅读 · 0 评论 -
101. 对称二叉树
一、递归# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def isSymme...原创 2019-02-28 22:43:55 · 120 阅读 · 0 评论 -
1.两数之和
一.暴力法:long = len(nums) for head in range(long): for tail in range(head+1,long): if nums[tail] == target - nums[head]: return head,tail break else: ...原创 2019-02-20 22:29:27 · 137 阅读 · 0 评论 -
算法刷题经验
一.树 class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None1.要先判断节点root是不是空2.递归的思想:需要一个自己函数二、栈class三、链表# class ListNode(object):# ...原创 2019-03-05 21:17:30 · 1083 阅读 · 0 评论 -
682. 棒球比赛
class Solution(object): def calPoints(self, ops): """ :type ops: List[str] :rtype: int """ stack = [] res=0 for op in ops: ...原创 2019-03-05 21:25:24 · 179 阅读 · 0 评论 -
933. 最近的请求次数
吐槽一句,这题说实话题目看着很难理解。一、队列class RecentCounter(object): def __init__(self): self.pings = list() def ping(self, t): """ :type t: int :rtype: int ...原创 2019-03-06 16:04:05 · 165 阅读 · 0 评论 -
9. 回文数
一、直接实现法1.判断符号2.取出个位组合成新数class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool """ res = [] x2 = 0 i = 0 ...原创 2019-03-14 11:09:46 · 113 阅读 · 0 评论 -
160. 相交链表
lenA, lenB = 0, 0 pA = headA pB = headB while pA: pA = pA.next lenA += 1 while pB: pB = pB.next lenB += 1 pA...原创 2019-03-04 20:25:05 · 155 阅读 · 0 评论 -
303. 区域和检索 - 数组不可变
一、class NumArray: def __init__(self, nums): """ :type nums: List[int] """ self.nums = nums def sumRange(self, i, j): """ :type i: int ...原创 2019-03-07 22:21:58 · 104 阅读 · 0 评论 -
707. 设计链表
因为题目说明不使用内置的库一、直接使用数组实现class MyLinkedList(object): def __init__(self): """ Initialize your data structure here. """ self.lst = [] def get(self, in...原创 2019-03-11 17:00:31 · 101 阅读 · 0 评论 -
977. 有序数组的平方
一、这题太简单就是直接平方,然后排序class Solution(object): def sortedSquares(self, A): """ :type A: List[int] :rtype: List[int] """ for i in range(len(A)): A[i...原创 2019-03-12 09:56:02 · 255 阅读 · 0 评论 -
剑指offer38:字符串的排列
1.递归的思想,第一个字符和其他字符排序组合,然后依次类推2.set函数class Solution: def Permutation(self, ss): if len(ss) <=0: return [] res = list() self.perm(ss,res,'') seq = ...原创 2019-07-16 21:07:30 · 132 阅读 · 0 评论