解法一 /* * @lc app=leetcode.cn id=205 lang=javascript * * [205] 同构字符串 * 输入:s = "paper", t = "title" 输出:true */ // @lc code=start /** * @param {string} s * @param {string} t
解法一 /* * @lc app=leetcode.cn id=387 lang=javascript * * [387] 字符串中的第一个唯一字符 * 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。 * */ // @lc code=start /** * @param {string} s * @return {numbe
解法一 /* * @lc app=leetcode.cn id=242 lang=javascript * * [242] 有效的字母异位词 */ // @lc code=start /** * @param {string} s * @param {string} t * @return {boolean} */ var isAnagram = function(s, t
解法一 递归函数定义 比较两个节点是否相同。 基础情况处理 当节点都为null时返回true, 当节点只有一个为null时返回false, 当节点都不为null,但是 val不同时返回false 递归调用(超级操作) 调用dfs 将左节点的左节点与右节点的右节点比较 和 左节点的右节点与右节点的左节点比较。 并且将结果返回 递推到当前层 无, 直接将比较结果返回。 /* * @lc ap
分治 递归问题 递归函数定义 明确函数的使命 明确原问题与子问题 要兼顾原问题与子问题 使命: 这个函数就是用来将传入的节点的两个子节点进行互换位置的 原问题: 将节点的两个子节点互换位置 子问题: 将节点的两个子节点互换位置 基础情况处理 数据规模较小时直接返回答案 当前节点不存在的时候 直接rentun 递归调用 可以称之为 超级操作 (涉及向下递归) 我们要将这个超级操作看成一个
解法一 /* * @lc app=leetcode.cn id=278 lang=javascript * * [278] 第一个错误的版本 */ // @lc code=start /** * Definition for isBadVersion() * * @param {integer} version number * @return {boolean} whether the ve
解法一 /* * @lc app=leetcode.cn id=704 lang=javascript * * [704] 二分查找 */ // @lc code=start /** * @param {number[]} nums * @param {number} target * @return {number} * 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 ta
解法一 只给了需要删除的节点 常规情况:如果想要删除一个节点, 就让父节点的指针指向子节点就删除了。 但是本题没有父节点,那么就让当前节点的值为一下节点, 然后将自己指针指向自己的子子节点。 这样就算是让自己的子节点替自己被删除了。 /* * @lc app=leetcode.cn id=237 lang=javascript * * [237] 删除链表中的节点 */ // @lc code=
解法一 /* * @lc app=leetcode.cn id=21 lang=javascript * * [21] 合并两个有序链表 */ // @lc code=start /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ?
localeCompare 方法 localeCompare 方法: localeCompare() 方法是 JavaScript 字符串对象的一个用于比较两个字符串的方法。该方法会根据语言环境和字母顺序,对指定字符串与当前字符串进行比较。 语法: string.localeCompare(compareString) compareString:用于比较的字符串。如果未提供该参数,则与调用该方
解法一 /* * @lc app=leetcode.cn id=215 lang=java * * [215] 数组中的第K个最大元素 */ // @lc code=start import java.util.PriorityQueue; import java.util.Queue; class Solution { public int findKthLargest(int[]
解法一 /* * @lc app=leetcode.cn id=145 lang=javascript * * [145] 二叉树的后序遍历 */ // @lc code=start /** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===un
解法一 /* * @lc app=leetcode.cn id=94 lang=javascript * * [94] 二叉树的中序遍历 */ // @lc code=start /** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===und
解法一 /* * @lc app=leetcode.cn id=144 lang=javascript * * [144] 二叉树的前序遍历 */ // @lc code=start /** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===u
解法一 集合的特性是 无序不重复。 使用数组来模拟哈希集合,不让数组中的元素重复即可。 /* * @lc app=leetcode.cn id=705 lang=javascript * * [705] 设计哈希集合 */ // @lc code=start var MyHashSet = function() { this.arr = []; }; /** * @param
解法一 使用两个map 记录每个字母出现的次数, 多的那个字母就是多加的。 使用俩map记录次数,并且找到多个字母。 /* * @lc app=leetcode.cn id=389 lang=javascript * * [389] 找不同 */ // @lc code=start /** * @param {string} s * @param {string} t * @return {c
解法一 使用哈希表记录每个值出现次数,遍历哈希表,发现大于1次结束遍历。 /* * @lc app=leetcode.cn id=217 lang=javascript * * [217] 存在重复元素 */ // @lc code=start /** * @param {number[]} nums * @return {boolean} */ var containsDuplicate =
解法一 定义一个数组, 就用数组操作数组内元素的方式来实现 就不用数组去模拟队列了, 直接用一段数组来表示队列 队列先进先出 队列入队我们就让数组push进去元素, 这样先进的就在数组的前头了 队列要出队,我们直接将数组前头的数据拿出删掉即可 /* * @lc app=leetcode.cn id=622 lang=javascript * * [622] 设计循环队列 */ // @lc
解法一 使用另一个队列倒数据,队列倒剩最后一个时就可以pop 或 top 了, 然后再将临时队列倒回到原队列。 /* * @lc app=leetcode.cn id=225 lang=javascript * * [225] 用队列实现栈 * */ // @lc code=start var MyStack = function () { this.queueA = []; }
解法一 /* * @lc app=leetcode.cn id=933 lang=javascript * * [933] 最近的请求次数 */ // @lc code=start var RecentCounter = function() { // 初始化队列 this.queue = []; }; /** * @param {number} t * @return
解法一 设置两个栈, 在pop 和 peek 时, 先把元素倒到另一个栈, 在另一个栈里操作, 然后将另一个栈里元素再倒回来就实现了队列先进先出了。 /* * @lc app=leetcode.cn id=232 lang=javascript * * [232] 用栈实现队列 */ // @lc code=start var MyQueue = function () { thi
解法一 暴力解法, 遍历nums1 ,查找当前元素在nums2的位置,然后遍历 nums2后的元素,找到第一个比当前元素大的值 push到数组中, 最后将数组返回。 /* * @lc app=leetcode.cn id=496 lang=javascript * * [496] 下一个更大元素 I */ // @lc code=start /** * @param {number[]} nu
解法一 栈 /* * @lc app=leetcode.cn id=20 lang=javascript * * [20] 有效的括号 */ // @lc code=start /** * @param {string} s * @return {boolean} */ var isValid = function(s) { const arr = []; // 不是成对数量
解法一 /* * @lc app=leetcode.cn id=206 lang=javascript * * [206] 反转链表 */ // @lc code=start /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined
解法一 /* * @lc app=leetcode.cn id=203 lang=javascript * * [203] 移除链表元素 */ // @lc code=start /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined
解法一 倒着遍历数组,元素若与val相同直接删除,最后将数组长度返回。 /* * @lc app=leetcode.cn id=27 lang=javascript * * [27] 移除元素 */ // @lc code=start /** * @param {number[]} nums * @param {number} val * @return {number} */ var re
解法一 indexs: 用来记录元素为0的下标 先遍历nums将为0的下标记录,然后倒着遍历nums 将indexs中记录的下标都删除,最后在最后加index.length个0。 /* * @lc app=leetcode.cn id=283 lang=javascript * * [283] 移动零 */ // @lc code=start /** * Time complexity: O(
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号