标签: leecode
二分查找
Leecode 33 思路: 由于复杂度限制,故不能直接遍历查找,也不能直接用std::find,因为二者是线性查找。有序,就用二分查找。旋转一半,那么肯定有一半是有序的,另外一半可能混合的,那么就看目标是在有序的那一边...
Leecode02.两数相加(C++) 链表 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为...
常用算法之快速排序算法
110. 平衡二叉树 本题用自顶向下递归和自底向上递归两种方法,后一种方法是最优解。 /** * Definition for a binary tree node. * public class ... * TreeNode(int val) { this.val ...
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums = [1,3,5,6], ...
public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode pre = new ListNode(-1), tail = pre; int lastRemain = 0; while (null != l1 || null != l2) { if(null !... lastRemain += l1.val...
leecode-栈 1. 用栈的时候注意栈空,hashMap与栈结合进行匹配。 2. 定义了两个栈,使用栈与最小栈,最小栈只存放每次push进去的当前最小值。这样可以达到getMin为o(1)复杂度。 3 单调栈,如果入栈的比之前大则...
主体思路和Leecode46 Permutations一致。 排列组合问题,需要用遍历的思想。 建立一个List(ArrayList curList),用来当做位置,可以抽象成将一些数字不重复地填充到这些位置上。 在num数组中挑选没有用过...
传送门 LeeCode 968. 监控二叉树 题解 假设节点满足其子树都被覆盖,则节点存在是否放置摄像头 222 种可能,以及是否被覆盖 222 种可能;状态合并后共有 333 中可能状态:节点无摄像头且未被覆盖(1),节点无摄像头...
采坑:过程中使用的是分片,分片是引用拷贝 func permute(nums []int) [][]int { var data []int var list [][]int ... _, list = getPermute(nums, data, list) ...func getPermute(nums []int, data []int, ...
传送门 LeeCode 1515. 服务中心的最佳位置 题解 二维区域上求到所有客户的欧几里得距离的总和最小位置的服务中心的位置,可以使用模拟退火法求解。在客户区域随机初始化较多的点,那么模拟退火时可以简单地当答案更...
dp0 dp1分别代表买了股票和卖了股票的收入,,dp2存储t-2时刻的卖出股票的收入。# 任意交易,连个变量,类似于k次交易的板子,只不过对第一次交易不用特殊处理,因为。# 不能丢,否则容易超时,特别是没有走上面两个...
传送门 LeeCode 174. 地下城游戏 题解 首先考虑图论,求顶点 KKK 至顶点 PPP 所有路径上点的路径权值和的最小值的最大值,修改松弛条件跑 SPFASPFASPFA 即可。 动态规划可以更简单地求解,如果正向递推,要维护路径...
传送门 LeeCode 题解 求图是否存在拓扑排序。栈维护入度为 000 的节点,每次将入度为 000 的节点移除后,将其连边对应的节点入度减一。若最终移除的节点个数正好等于 numCoursesnumCoursesnumCourses 则可能完成所有...
以下为官方题解的内容,只是对代码进行解释 def merge(intervals): intervals.sort(key=lambda x:x[0]) ''' key= 表示按哪个键排序 次数x[0]表示左端点,x[1]表示右端点 ''' merged = [] #存储无重叠的区间 ...
leecode算法《88. 合并两个有序数组》详解有注释,简单明了。 原题内容 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量...
传送门 LeeCode 124. 二叉树中的最大路径和 题解 对于二叉树的最大路径,dfsdfsdfs 深度相同的节点最多只有 222 个,且 dfsdfsdfs 深度最小的节点只有 111 个。 对于每一个节点,最大路径和可能出现在包含此节点且此...
面试题 05.06. 整数转换 整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。 示例1: 输入:A = 29 (或者0b11101), B = 15(或者0b01111) 输出:2 示例2: 输入:A = 1,B = 2 ...
Leecode——139. 单词拆分 题目链接 思路:动态规划+哈希表 dp[i]表示从0下标开始到i的字符串是否可以被拆分 class Solution { public: bool wordBreak(string s, vector<string>& wordDict) { ...