
LeetCode笔记
文章平均质量分 51
刷题笔记
python_little_Boy
这里是一个Python的小天地。博主也是学习定时会写一些有关的博客!欢迎大家借鉴学习,交流沟通!!!
展开
-
力扣 902最大为 N 的数字组合
力扣902原创 2022-10-18 11:52:13 · 321 阅读 · 1 评论 -
力扣115 重复的子字符串
给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE"是"ABCDE"的一个子序列,而"AEC"不是)题目数据保证答案符合 32 位带符号整数范围。解题方法:动态规划...原创 2021-10-08 21:18:56 · 248 阅读 · 0 评论 -
力扣 买卖股票的最佳时机系列题解
121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV309. 最佳买卖股票时机含冷冻期714. 买卖股票的最佳时机含手续费121、只能买卖一次方一:一次遍历法记录最大差值!public class Solution { public int maxProfit(int prices[]) { int minprice = Integer.MAX_VALUE; ...原创 2021-10-07 21:36:26 · 288 阅读 · 0 评论 -
阿里笔试算法题2021
1.小强现在有n个物品,每个物品有x,y两种属性和.他想要从中挑出尽可能多的物品满足以下条件:对于任意两个物品 i 和j ,满足( i.x < j.x 且 i.y < j.y)或者(i.x > j.x 且 i.y > j.y).问最多能挑出多少物品 第一行输入一个正整数 T.表示有T组数据. 对于每组数据,第一行输入一个正整数N.表示物品个数N. 接下来两行,每行有个N整数. 第一行表示N个节点的X属性. 第二行表示N个节点的Y属性.原创 2021-07-27 17:24:51 · 6967 阅读 · 2 评论 -
力扣49 字母异位词分组
给定一个字符串数组,将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词指字母相同,但排列不同的字符串。示例 1:输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat","tan"],["ate","eat","tea"]]示例 2:输入: strs = [""]输出: [[""]]示例 3:输入: strs = ["a"] 输出: [["a"]]算法思...原创 2021-07-26 20:45:21 · 348 阅读 · 0 评论 -
力扣24 两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]方法:迭代思路与算法创建哑结点 dummy,令 dummy.next = head。令p表示当前到达的节点,初始时 p = dummy。每次需要交换 temp 后面的两个节原创 2021-07-26 17:58:29 · 137 阅读 · 0 评论 -
力扣20 有效的括号
给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:tru示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s = "{[]}"输出:true...原创 2021-07-26 14:09:42 · 251 阅读 · 0 评论 -
力扣19 删除链表的倒数第N个结点
题目:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]解法解析:我们也可以在不预处理出链表的长度,以及使用常数空间的前提下解决本题。由于我们需要找到倒数第 n个节点,因此我们可以使用两...原创 2021-07-26 13:28:02 · 246 阅读 · 0 评论 -
力扣 3. 无重复字符的最长子串
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是'abc'思路标签:滑动窗口 暴力解法时间复杂度较高,会达到 O(n^2),故而采取滑动窗口的方法降低时间复杂度 定义一个 map 数据结构存储 (k, v),其中 key 值为字符,value 值为字符位置 +1,加 1 表示从字符位置后一个才开始不重复 我们定义不重复子串的开始位置为 start,结束位置为 end...原创 2021-07-21 14:21:54 · 148 阅读 · 0 评论 -
力扣143 重排链表
给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0→ L1→ … → Ln-1→ Ln请将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→ …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入: head = [1,2,3,4]输出: [1,4,2,3]示例 2:输入: head = [1,2,3,4,5]输出: [1,5,2,4,3]方法一:线性表因为链表不支持下标访...转载 2021-07-21 13:09:21 · 195 阅读 · 0 评论 -
牛客70 单链表排序
描述给定一个无序单链表,实现单链表的排序(按升序排序)。示例1输入:[1,3,2,4,5]复制返回值:{1,2,3,4,5}方一:值排序,不是真正做到链表排序,直接遍历整个链表,用一个数组存储所有的val,然后进行排序,最后将排序完的值赋值给链表import java.util.*;public class Solution { public ListNode sortInList (ListNode head) { // write code here原创 2021-07-21 11:27:15 · 223 阅读 · 0 评论 -
第15题 三数之和
题目:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1: 输入:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2],[-1,0,1]] 示例 2: 输入:nums = [] 输出:[] 示例 3: 输入:nums = [0] 输出:[]解题思路:其中第二个问题,从0遍历到length-...原创 2021-07-09 11:16:06 · 201 阅读 · 0 评论 -
第五题 最长回文子串
解法 1: 暴力破解暴力求解,列举所有的子串,判断是否为回文串,保存最长的回文串public boolean isPalindromic(String s) { int len = s.length(); for (int i = 0; i < len / 2; i++) { if (s.charAt(i) != s.charAt(len - i - 1)) { return false; } } return true; }// 暴力解法publ原创 2021-07-07 15:29:29 · 162 阅读 · 0 评论 -
第二题 两数相加
题目:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,...原创 2021-07-07 13:03:35 · 141 阅读 · 0 评论 -
第一题 两数之和
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。分析:关于为什么将num[i]当作key是因为,java中Map的操作有一个Map.containsKey()可以用来判断Map中是否含有此key存在。题解:class Solution { public int[] t...原创 2021-07-07 11:24:23 · 167 阅读 · 0 评论