LeetCode

LeetCode 题解 Swift 有效的完全平方数

目录 题目 方法一:使用内置的库函数 思路及解法 复杂度分析 方法二:暴力 思路及解法 代码 复杂度分析 方法三:二分查找 思路及解法 细节 代码 复杂度分析 题目 给定一个 正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 true,否则返回 false。 »

二叉树的重建问题

二叉树的重建问题 作者:Grey 原文地址: 博客园:二叉树的重建问题 CSDN:二叉树的重建问题 说明 二叉树的各种遍历见二叉树的先,中,后序遍历(递归,非递归,Morris方法) 根据中序遍历和后序遍历重建二叉树 链接地址:LeetCode 106. Construct Binary Tree ... »

使用二叉树的递归套路来解决的问题

使用二叉树的递归套路来解决的问题 作者:Grey 原文地址: 博客园:使用二叉树的递归套路来解决的问题 CSDN:使用二叉树的递归套路来解决的问题 说明 二叉树的递归套路本质是二叉树的后序遍历,如果你需要你的左树给你一些信息,右树给你一些信息,然后整合得到当前节点的信息,就可以用二叉树的递归套路。 ... »

累加和为 K 的最长子数组问题

累加和为 K 的最长子数组问题 作者:Grey 原文地址: 博客园:累加和为 K 的最长子数组问题 CSDN:累加和为 K 的最长子数组问题 题目描述 给定一个整数组成的无序数组 arr,值可能正、可能负、可能0,给定一个整数值 K,找到 arr 的所有子数组里,哪个子数组的累加和等于 K,并且是长 ... »

使用单调栈来解决的一些问题

使用单调栈来解决的一些问题 作者:Grey 原文地址: 博客园:使用单调栈来解决的一些问题 CSDN:使用单调栈来解决的一些问题 单调栈说明 使用单调栈可以实现 数组中任意一个元素的左边和右边离它最近的比它小(大)的数,且时间复杂度O(N) 先考虑数组中无重复值的情况,题目描述见: 牛客:单调栈结构 ... »

与归并排序相关的一些问题

与归并排序相关的一些问题 作者:Grey 原文地址: 博客园:与归并排序相关的一些问题 CSDN:与归并排序相关的一些问题 归并排序的递归解法 插入,选择,冒泡排序时间复杂度是O(N^2),归并排序可以做到时间复杂度O(N*logN)。 归并排序的整体思路是利用递归,先让左边排好序,再让右边排好序, ... »

动态规划——leetcode5、最长回文子串

1、题目描述: 2、解题方法:动态规划 动态规划解题步骤: 1、确定状态 最后一步:如果s[i,...,j]是回文子串,那么需要满足两个条件 ① s[i] == s[j]; ② s[i+1,...,j-1]是回文子串; 子问题:我们要验证s[i+1,...,j-1]是不是回文子串 用dp[i][j] ... »

基础数据结构之链表相关的一些问题

基础数据结构之链表相关的一些问题 作者:Grey 原文地址: 博客园:基础数据结构之链表相关的一些问题 CSDN:基础数据结构之链表相关的一些问题 反转单链表 题目描述见:LeetCode 206. Reverse Linked List 思路如下 对于任何一个节点 cur 来说,记录一个前驱节点 ... »

二分法基本思路和实现

二分法基本思路和实现 作者:Grey 原文地址: 博客园:二分法基本思路和实现 CSDN: 二分法基本思路和实现 在一个有序数组中,找某个数是否存在 OJ 见:LeetCode 704. Binary Search 思路: 由于是有序数组,可以先得到中点位置,中点可以把数组分为左右半边。 如果中点位 ... »

随机函数变换示例

随机函数变换示例 作者:Grey 原文地址:随机函数变换示例 说明 本示例中基于 Java ,其他语言也有类似的 API 解决的问题 问题1 Java 中 Math.random()函数是等概率返回区间[0,1)中的任意一个小数。 即x < 1情况下,[0,x)中的数出现的的概率是x, 如果我们要将 ... »

LeetCode 593. 有效的正方形(向量做法)

题目 题目链接:593. 有效的正方形 题意:给出二维平面上四个点的坐标,判断这四个点是否能构成一个正方形,四个点的输入顺序不做任何保证。 思路 通过向量运算可以很轻松地解决这道题。任取一点向其他三点连线,可以得到三个向量。我们将这三个向量按照其长度从小到大排序,分别称为 $\boldsymbol{ ... »

zhb2000

删除链表结点类问题

删除链表结点 NO1. 删除链表倒数第 k个结点 给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针。要求:空间复杂度 $O(1)$,时间复杂度 $O(n)$ 如果倒数第 k 个结点刚好是头结点,那头结点需要特殊处理。为了各个结点能等同操作,设置一个虚拟头结点。 寻找倒数第 k 个结点常使 ... »

436. 寻找右区间--LeetCode_二分

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/find-right-interval 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题目大意是这样的 数组中的元素由一个区间组成(包含一个左端点和右端点),左端点一定是唯一的 找 ... »

436. 寻找右区间--LeetCode_暴力

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/find-right-interval 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题目大意是这样的 数组中的元素由一个区间组成(包含一个左端点和右端点),左端点一定是唯一的 找 ... »

275. H 指数 II--Leetcode_二分

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/h-index-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题目的大意是这样的 有一个升序排列的数组citations,返回citations的h指数 h指数:在数组cit ... »

链表反转类算法题

反转链表类 NO1. 反转链表 给定一个长度为 n 的链表,反转该链表,输出表头。 方法一:迭代法(推荐使用) 算法流程: step 1 :特殊情况判断,空链表或只有一个结点的链表,直接返回头结点; step 2 :设置两个指针cur和prev,cur指向当前结点,prev指向上一个结点(初始为 n ... »

LeetCode使用JavaScript破解两数之和

有人相爱,有人夜里开车看海,我是leetcode第一题都做不出来 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 ... »

找到字符串中所有字母异位词

找到字符串中所有字母异位词 作者:Grey 原文地址:找到字符串中所有字母异位词 题目描述 LeetCode 438. 找到字符串中所有字母异位词 主要思路 使用滑动窗口和欠账表的机制,首先,将p串建立词频表 int c = pStr.length; for (char ch : pStr) { m ... »

Leetcode 1331. 数组序号转换

给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号。 序号代表了一个元素有多大。序号编号的规则如下: 序号从 1 开始编号。 一个元素越大,那么序号越大。如果两个元素相等,那么它们的序号相同。 每个数字的序号都应该尽可能地小。 示例 1: 输入:arr = [40,10,20, ... »

xiaohai123 C/C++

求数据流中的中位数问题

求数据流中的中位数问题 作者:Grey 原文地址: 求数据流中的中位数问题 题目链接 LeetCode 295. Find Median from Data Stream 主要思路 要得到数据流中的中位数,在偶数的情况下,要得到上下中位数求平均,在奇数的状态下,要得到中间位置的数,这里最关键的问题就 ... »