文章分类 -  leetcode刷题

摘要:题目 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n = 1 输出:[[1]] 思路 1.注意边界条件 这 阅读全文
posted @ 2023-02-24 13:24 铜锣湾陈昊男 阅读(7) 评论(0) 推荐(0)
摘要:题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输入:target 阅读全文
posted @ 2023-02-22 19:29 铜锣湾陈昊男 阅读(3) 评论(0) 推荐(0)
摘要:数组移除元素 题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回 阅读全文
posted @ 2023-02-11 17:11 铜锣湾陈昊男 阅读(9) 评论(0) 推荐(0)
摘要:二分查找 题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 阅读全文
posted @ 2023-02-11 16:04 铜锣湾陈昊男 阅读(5) 评论(0) 推荐(0)
摘要:时间复杂度 直接给链接 https://www.programmercarl.com/%E5%89%8D%E5%BA%8F/%E5%85%B3%E4%BA%8E%E6%97%B6%E9%97%B4%E5%A4%8D%E6%9D%82%E5%BA%A6%EF%BC%8C%E4%BD%A0%E4%B8% 阅读全文
posted @ 2023-02-11 15:31 铜锣湾陈昊男 阅读(8) 评论(0) 推荐(0)
摘要:按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方 阅读全文
posted @ 2022-09-24 16:19 铜锣湾陈昊男 阅读(4) 评论(0) 推荐(0)
摘要:给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。 想法一:使用前序遍历,但是这里要注意 阅读全文
posted @ 2022-09-15 15:15 铜锣湾陈昊男 阅读(8) 评论(0) 推荐(0)
摘要:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6 阅读全文
posted @ 2022-09-15 11:00 铜锣湾陈昊男 阅读(5) 评论(0) 推荐(0)
摘要:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2: 输入:head = []输出:[]示例 3: 输入:head = [1]输出:[ 阅读全文
posted @ 2022-09-13 20:22 铜锣湾陈昊男 阅读(5) 评论(0) 推荐(0)
摘要:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 想法一:将需要反转的链表建立一个空头,再逐一进行反转: class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* slow = NULL; 阅读全文
posted @ 2022-09-13 20:18 铜锣湾陈昊男 阅读(6) 评论(0) 推荐(0)
摘要:根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 注意 两个整数之间的除法只保留整数部分。 可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入:tokens = 阅读全文
posted @ 2022-09-12 21:47 铜锣湾陈昊男 阅读(18) 评论(0) 推荐(0)
摘要:给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 " 阅读全文
posted @ 2022-09-12 20:32 铜锣湾陈昊男 阅读(30) 评论(0) 推荐(0)
摘要:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2: 输入:root = [2,1,3]输出:[2,3,1] 想法一: 1.是在前序遍历(递归)中反转二叉树: class S 阅读全文
posted @ 2022-09-10 16:28 铜锣湾陈昊男 阅读(16) 评论(0) 推荐(0)
摘要:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 示例 1: 输入:s = "()"输出:true示例 2: 输入:s = 阅读全文
posted @ 2022-09-09 11:35 铜锣湾陈昊男 阅读(6) 评论(0) 推荐(0)
摘要:编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是, 阅读全文
posted @ 2022-09-07 16:10 铜锣湾陈昊男 阅读(11) 评论(0) 推荐(0)
摘要:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2: 输入:nums1 = [4,9,5], nums2 = 阅读全文
posted @ 2022-09-07 15:09 铜锣湾陈昊男 阅读(5) 评论(0) 推荐(0)
摘要:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram"输出: true示例 2: 输入: s = "rat", 阅读全文
posted @ 2022-09-07 14:50 铜锣湾陈昊男 阅读(9) 评论(0) 推荐(0)
摘要:找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k = 3, n = 7输出: [[1,2,4]]解释:1 + 2 + 4 = 7没有其 阅读全文
posted @ 2022-09-06 16:11 铜锣湾陈昊男 阅读(19) 评论(0) 推荐(0)
摘要:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]示例 2: 输入:n = 1, k = 1输出:[ 阅读全文
posted @ 2022-09-06 15:45 铜锣湾陈昊男 阅读(5) 评论(0) 推荐(0)
摘要:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1: 输入: s = "abcdefg", k = 2输出: "cdefgab"示例 2: 阅读全文
posted @ 2022-09-06 15:27 铜锣湾陈昊男 阅读(5) 评论(0) 推荐(0)