- 博客(7)
- 收藏
- 关注
原创 118. 杨辉三角
118. 杨辉三角 给定一个非负整数numRows,生成杨辉三角的前numRows行。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 我思路: 输出为一个一列numRows行的矩阵(这里用一个列表),每个元素是一个列表m。下标为i的元素,其元素个数为i+1。 n[i][j]=n[i-1][j-1]+n[i-1][j](若两项中一项不存在则不加那项) n[0][0]=[1] 用a...
2020-06-19 10:26:08
126
原创 leetcode119
119. 杨辉三角 II 给定一个非负索引k,其中k≤33,返回杨辉三角的第k行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 3 输出: [1,3,3,1] 我思路:
2020-06-18 11:20:50
295
原创 leetcode 题66,88
66. 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 我: 1.先确定是不是999...,做特殊处理(因为多一位)。其他的从末尾加一,如果是9,就变动前一位,否则停止 class Solution(object): def plusOne(self, digits): flag=1 for i in ran.
2020-06-09 12:38:31
206
原创 leetcode 题121买卖股票的最佳时机
121. 买卖股票的最佳时机 给定一个数组,它的第i个元素是一支给定股票第i天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。 我思路:本质就是求最大段差(大于0),中间元素可以忽略,只看段的两个端点 1.分治 每次分为左右两段,中间元素两边都要用 【如果跨越中间的怎么办?】 用一个全局变量result存储过程中的最大 ...
2020-06-08 09:57:27
507
原创 d3:题35、53
35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 我思路: 二分查找 可用递归,也可用循环 class Solution(object): def searchInsert(self, nums, target): high=len(nums)-1 #high指向高处元素 if high==-1: retur.
2020-06-07 08:14:22
211
原创 leetcode 题27
官方解法: 双重指针 def removeDuplicates(self, nums): if len(nums)==0:#要对空数组做处理 return 0 i=0 for j in range(len(nums)):#他用一个循环就解决了,主要是对j的遍历,i看情况+1就行了 if nums[i]!=nums[j]: i=i+1 num..
2020-06-05 08:21:04
176
原创 Leetcode心路历程 题1
1. 两数之和 给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 解1: class Solution(object): def twoSum(self, nums, target): j=-1#用以判断最后有没有找到 for x in nums: y=target-x ...
2020-06-01 14:52:13
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅