算法题
文章平均质量分 88
JacksonKim
这个作者很懒,什么都没留下…
展开
-
连续子数组问题
这个时候需要用到二维dp, dp[i][0]表示包含nums[i]但是没有用x替换条件下的最大连续子数组的和,dp[i][1] 表示包含nums[i]而且用x替换条件下的最大连续子数组的和。链接:https://leetcode.cn/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof。输入一个整型数组,数组中的一个或连续多个整数组成一个子数组,现在你可以将数组中任意一个数修改为指定数值x。输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。原创 2023-07-24 22:22:57 · 320 阅读 · 0 评论 -
减治法:寻找两个正序数组的中位数
一、问题描述给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays示例1nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例2nums1 =原创 2020-08-20 22:08:52 · 575 阅读 · 0 评论 -
二叉树:给定二叉树的前序遍历和后序遍历确定二叉树的个数
文章转载自:https://www.cnblogs.com/code-changeworld/p/4542713.html一、题目描述输入输入有多组数据,每组数据两行,第一行给出前序遍历的访问顺序,第二行给出后序遍历的访问顺序。二叉树的结点用一个大写字母表示,不会有两个结点标上相同字母。输入数据不包含空格,且保证至少有一棵二叉树符合要求。输出输出一个整数,为符合要求的不同形态二叉树的数目。样例输入ABCDCBDA样例输出 2二、解题思路设只有一颗子树的.转载 2020-08-06 19:32:17 · 2854 阅读 · 1 评论 -
二叉树:根据前序遍历和中序遍历重构二叉树
一、前言重构二叉树的几个条件:具有中序遍历,同时具备前序遍历和后序遍历的其中一个。也就是说,我们可以根据前序遍历和中序遍历来重构二叉树,同时也能够根据中序遍历和后序遍历重构二叉树。二叉树各阶段元素不能够重复。那为什么前序遍历和后序遍历的组合不能够重构二叉树?最主要的因素就是当一个节点只有一棵子树是,我们无法区分它是左子树还是右子树。二、代码实现很明显,根据我们的常规思维,我们容易想到,前序遍历的第一个元素必然是根节点,然后再中序遍历中找到该节点,就可以划分根节点的左子树和右子树。接着,进一步原创 2020-08-06 19:25:43 · 1081 阅读 · 0 评论 -
八皇后的问题plus快速排序——递归算法和非递归算法的实现
一、前言递归和回溯是两种常见的算法。递归是指一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。递归算法本身可以很容易的实现回溯,因为只要再递归函数不满足求解调解时令其return返回,即原创 2020-08-06 16:19:56 · 355 阅读 · 0 评论 -
动态规划:给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种
一、问题描述不同的二叉搜索树给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2原创 2020-05-31 19:41:39 · 2120 阅读 · 2 评论 -
动态规划:戳气球——有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中...
一、题目描述有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组nums中。现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得nums[left] * nums[i] * nums[right]个硬币。这里的left和right代表和i相邻的两个气球的序号。注意当你戳破了气球 i 后,气球left和气球right就变成...原创 2020-05-02 21:45:17 · 4096 阅读 · 0 评论 -
C++海龟制图实现
#include #include using namespace std;int matrix[100][100]={0},n=0,d=0,x=0,y=0;void move(int);void print();int main(){int command;while(cin>>command&&command!=0){switch(command)原创 2017-12-30 08:28:36 · 2407 阅读 · 0 评论 -
滑动窗口:给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。
一、题目描述给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例2:输入: s1= "ab" s2 = "eidboaoo"输出: False...原创 2020-04-18 12:26:32 · 5880 阅读 · 0 评论 -
滑动窗口:给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。
一、问题描述给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换k次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过。示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA"...原创 2020-04-18 12:07:56 · 2840 阅读 · 0 评论