我们给出 S,一个源于 {'D', 'I'} 的长度为 n 的字符串 。(这些字母代表 “减少” 和 “增加”。)有效排列 是对整数 {0, 1, ..., n} 的一个排列 P[0], P[1], ..., P[n],使得对所有的 i: 如果 S[i] == 'D',那么 P[i] > P[i+1],以及; 如果 S[i] == 'I',那么 P[i] < P[i+1]。 有多少个有效排列?因为答案可能很大,所以请返回你的…

2021年10月22日 0条评论 14点热度 阅读全文

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 说明: 你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。

2021年10月15日 0条评论 16点热度 阅读全文

深度优先与广度优先求解二叉树深度 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数 二叉树的结构: public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left; this.…

2021年10月6日 0条评论 15点热度 阅读全文

此篇为学习完《数据结构与算法之美》后,在LeetCode刷题的汇总目录,方便大家查找(Ctrl+Find),一起刷题,一起PK交流!如果本文对你有帮助,可以给我点赞加油! Updated on 2021.6.20 刷题可以按照不同的专题进行,便于加强某个知识点的理解。另有《剑指Offer》面试题(更新完毕)、《程序员面试金典》面试题(更新完毕)、LintCode代码能力测试CAT。 LeetCode MySQL 数据库解题目录 点击访问 我的 LeetCode 主页 我的 GitHub 主页 通过1900, 简单5…

2021年9月30日 0条评论 18点热度 阅读全文

敬请关注博客,后期不断更新优质博文,谢谢 每天j坚持刷leetcode----找出最大的回文字符串   package leetcode.T005_LongestPalindromicSubstringTotal; /** * @author 周志祥 E-mail:1579655633@qq.com * @date 创建时间:2017-4-30 下午7:00:50 * @version 1.0 * @parameter * @since * @return */ public class Solution…

2021年9月25日 0条评论 13点热度 阅读全文

题目描述 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 题目分析 这时一个很典型的动态规划题目,数组不一定是有序的,而且连续子序列中的符号也不一定一致,这是两点需要注意的,详细思路请见源代码。 源代码 class Solution { public: int maxProduct(vector<int>& nums) { if(nums.empty()) return 0; int ret, pos, neg; pos = nums[0]; neg …

2021年9月21日 0条评论 15点热度 阅读全文

降低时间复杂度的几种方法【持续更新】   LeetCode的许多题目都对时间复杂度有相应的要求,大家在刷题时遇到一道题可能有自己的解决方法,也确实可行,然而时间复杂度达不到要求也无法通过。这里给大家持续总结LeetCode中遇到的那些降低时间复杂度的方法。 充分利用已有信息(如DP中的备忘录)   LeetCode 652. Find Duplicate Subtrees Given a binary tree, return all duplicate subtrees. For each kind of dup…

2021年9月6日 0条评论 25点热度 阅读全文

起因:leetcode 题目 本地测试正常,提交答案时,提示内存越界.(如下图) 测试时,无意间发现直接仅保留return strlen(chars)仍旧提示内存越界. 进一步测试结果如下,在此先做下记录,待日后再找寻原因. size_t strlena(const char* start) { // NB: no nullptr checking! const char* end = start; for( ; *end != '\0'; ++end) ; return end - start; } int co…

2021年9月1日 0条评论 24点热度 阅读全文

刷leetcode的时候,看到三道题:145. 二叉树的后序遍历、94. 二叉树的中序遍历、144. 二叉树的前序遍历。正好趁着这三道题,回顾一下二叉树的遍历算法。 二叉树的前序遍历:先遍历根,再遍历左子树,再遍历右子树; 二叉树的中序遍历:先遍历左子树,再遍历根,再遍历右子树; 二叉树的后序遍历:先遍历左子树,再遍历右子树,再遍历根; 前中后遍历是以根的顺序区分的。 下面按照leetcode题目要求给出每个遍历算法的递归和非递归程序。 在这三个题目里面,树节点都是使用TreeNode表示的,代码如下: publi…

2021年8月26日 0条评论 12点热度 阅读全文

Given an integer array with even length, where different numbers in this array represent different kinds of candies. Each number means one candy of the corresponding kind. You need to distribute these candies equally in number to …

2021年8月8日 0条评论 13点热度 阅读全文