随笔分类 - LeetCode刷题合集
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) :
阅读全文
摘要:39. 组合总和 https://leetcode-cn.com/problems/combination-sum/ 拿到题比较贪心,希望用比较简洁的方法想出来,不要太高的复杂度。隐隐约约记得好像这种题应该是用回溯搜索来写,但是刚刚拿题的时候居然没想出来。。。晚上洗完衣服,灵光乍现,一气呵成。 cl
阅读全文
摘要:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 有效括号组合需满足:左括号必须以正确的顺序闭合。 示例 1: 输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2: 输入:n = 1
阅读全文
摘要:给你一个整数数组 nums 和一个整数 k。 如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。 请返回这个数组中「优美子数组」的数目。 示例 1: 输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1
阅读全文
摘要:剑指 Offer 57. 和为s的两个数字 1.暴力循环 运行时间超限。复杂度是O(n^2). 点击查看代码 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> ans(2)
阅读全文
摘要:剑指 Offer 52. 两个链表的第一个公共节点 一道easy难度的题目,但是很好的考察了双指针的思想以及链表的知识,值得反复练习。 1.笨方法(暴力!) 时间复杂度 O(n2) class Solution { public: ListNode *getIntersectionNode(List
阅读全文
摘要:1567. 乘积为正数的最长子数组长度 - 力扣(LeetCode) (leetcode-cn.com) 代码 思路:dp,创建两个数组,posti和negav,分别存储以下标i为结尾的最长正数子数组和最长负数子数组。 遍历nums数组,当nums[i]大于0时,以nums[i]为结尾的最长正数子数
阅读全文