
力扣刷题python
中南自动化学院至渝
好记性不如烂笔头,多写写
展开
-
167. 两数之和 II - 输入有序数组 剑指 Offer II 006. 排序数组中两个数字之和 653. 两数之和 IV - 输入 BST【每日一题】
167. 两数之和 II - 输入有序数组思路 最容易想到的肯定是暴力双循环,然后可能想得到二分,再熟悉点就是双指针了。思路简单,前后往中间找,反正题目说了一定有一个有效解。cppclass Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { int l = 0;原创 2022-03-21 11:31:19 · 16351 阅读 · 0 评论 -
102. 二叉树的层序遍历 107二叉树的层序遍历||,429 N叉树的层序遍历【每日一题】
102. 二叉树的层序遍历思路 与前中后序遍历用栈不同,层序遍历用队列是一个很好的方法,每次都处理当前层,然后把当前层的左右孩子都入队列,处理完处理下一层,直到队列为空,处理结束cppclass Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<in原创 2022-03-21 10:40:48 · 16594 阅读 · 0 评论 -
力扣每日一题 2047. 句子中的有效单词数
题目代码暴力模拟class Solution: def countValidWords(self, sentence: str) -> int: lists = sentence.split() number = 0 for string in lists: if bool(re.search(r'\d', string)): ## 去掉有数字的,保证没数字 continue原创 2022-01-27 16:32:12 · 21021 阅读 · 0 评论 -
力扣刷题 201. 数字范围按位与
201. 数字范围按位与c++,两种方法class Solution {public: int rangeBitwiseAnd(int m, int n) { // 0和任何东西做与操作都是0,那么意味着只要某一位上面出现了0,那么最后也就是0了,所以就转化为了求公共前缀的问题 // 找公共前缀,对大数不断消去最后的1,直到比小数还小就是公共前缀(做一点点解释,大数与小数的第一位不同必然是大数时1,小数是0,才能保证大数要大一点,我们消去大原创 2021-02-01 17:55:39 · 26154 阅读 · 1 评论 -
力扣刷题 977. 有序数组的平方
977. 有序数组的平方c++,两种方法class Solution {public: vector<int> sortedSquares(vector<int>& A) { int n = A.size(); vector<int> ans; for(int i=0;i<n;++i){ ans.push_back(A[i]*A[i]); }原创 2021-02-01 13:41:46 · 26003 阅读 · 0 评论 -
力扣刷题 面试题 17.10. 主要元素
面试题 17.10. 主要元素方法1class Solution: def majorityElement(self, nums: List[int]) -> int: for obj in set(nums): if nums.count(obj)>len(nums)/2: return obj return -1方法2 &nb原创 2021-02-01 10:45:23 · 26216 阅读 · 0 评论 -
力扣刷题 4. 寻找两个正序数组的中位数
4. 寻找两个正序数组的中位数 两种方法都能通过,但是排序的复杂度肯定不满足题目要求的。第二种我不知道是不是满足了复杂度要求,代码有点多,不过也还容易能看懂喽class Solution: def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: # reslist =原创 2021-02-01 10:16:34 · 26097 阅读 · 0 评论 -
力扣474、一和零动态规划
解法1:复杂度很高import numpy as npclass Solution: def findMaxForm(self, strs: List[str], m: int, n: int) -> int: strNumber = len(strs) dp = np.zeros((strNumber+1,m+1,n+1),dtype=int) for i in range(1,strNumber+1): temp.原创 2020-12-09 17:23:03 · 26442 阅读 · 0 评论 -
力扣300、最长上升子序列动态规划刷题
解法1,复杂度O(n)class Solution: def lengthOfLIS(self, nums: List[int]) -> int: # 解法1,复杂度O(n) # 定义dp[]是以第i个元素结尾得最长字串长度,则答案就是dp中最大的那个数,转移方程为dp[i] =max(dp[i],dp[j]+1) if nums[j]<nums[i] j=0...i # 含义就是前面的看第i个可以加到前面的子序列后面不(大于前面的就可.原创 2020-12-09 16:33:42 · 26218 阅读 · 0 评论 -
能被3或5整除的1000以内的数字和(等差数列求和方式)
首先想到的肯定是这样sum = 0for i in range(1,1000): if i % 3== 0 or i % 5 == 0: sum = sum + iprint(sum)显然虽然这个方法代码简单,也很容易理解,但是运行的效率低。所以再想想,在1-1000中,3的倍数最小的是3,最大的是999。5的倍数最小的是5,最大的是995。3和5的倍数其中肯定...原创 2020-04-02 10:23:57 · 27783 阅读 · 0 评论 -
764. 最大加号标志
题目:在一个大小在 (0, 0) 到 (N-1, N-1) 的2D网格 grid 中,除了在 mines 中给出的单元为 0,其他每个单元都是 1。网格中包含 1 的最大的轴对齐加号标志是多少阶?返回加号标志的阶数。如果未找到加号标志,则返回 0。一个 k" 阶由 1 组成的“轴对称”加号标志具有中心网格 grid[x][y] = 1 ,以及4个从中心向上、向下、向左、向右延伸,长度为 k-...原创 2020-01-15 15:18:58 · 24659 阅读 · 0 评论 -
165. 比较版本号
比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和 . 字符。 . 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。你可以假设...原创 2020-01-15 10:20:08 · 24779 阅读 · 0 评论 -
8. 字符串转换整数 (atoi)
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...原创 2020-01-15 10:18:29 · 24653 阅读 · 0 评论 -
3、无重复字符的最长子串
题目 :给定一个字符串,请你找出其中不含有重复字符的 最长子串的长度。思路: 线性遍历每个字符,用一个字典记录下每个字母出现的最新的下标。当遇到一个新元素在字典里面里没有记录时,代表它没有跟我们已有的字符子串里的字母重复。如果在字典里有记录,说明它跟我们已有的字符子串里的字...原创 2019-11-08 14:58:52 · 17825 阅读 · 0 评论 -
2、两数相加
题目: 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储 一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:(2 ->...原创 2019-11-08 14:42:09 · 17745 阅读 · 0 评论 -
1.两数之和
题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数, 并返回他们的数组下标。你不能重复利用这个数组中同一...原创 2019-10-24 10:59:49 · 17854 阅读 · 0 评论