数据结构与算法(C++)
。。
marics33
这个作者很懒,什么都没留下…
展开
-
线性时间选择(C++)
题目描述 给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。 解决方法 1.随机快速排序 partition(int* array, int low ,int high) 一般的快速排序选择的基准数通常会是数组的第一个,随机快速排序会产生一个在low和high之间的随机数作为下标,以这个随机下标对应的数作为基准对数组进行划分。 代码: #include<iostream> #include<ctime> #include<algorithm>原创 2022-04-11 16:50:47 · 1853 阅读 · 0 评论 -
整数划分问题
题目描述 正整数的划分问题是将一个正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。 递归解法 假设f(n , m)表示最大加数不会超过m的关于n的整数划分的个数。例如f(1,1)=1。则: f( n , 1) = 1 m=1 f(n , n ) = f(n , 1) + f(n , n - 1) m=n f(n , m) = f(n , n) m > n f(n , m) = f(n , m -1) + f(n - m , m) m &原创 2022-04-10 12:34:54 · 105 阅读 · 0 评论 -
最大子数组和
题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 解决思路 动态规划法:定义一个数组dp,dp[i]所表示的含义是整数数组nums从下标0到下标i的子数组所具有的连续子数组的最大和。 假设nums = [-2,1,-3,4,-1,2,1,-5,4], dp[0] = -原创 2022-04-09 18:57:51 · 510 阅读 · 0 评论