Loading

上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 75 下一页
摘要: 思路 本题解来自:面试题44. 数字序列中某一位的数字(迭代 + 求整 / 求余,清晰图解) 方法:找规律 1 class Solution { 2 public: 3 int findNthDigit(int n) { 4 int digit = 1; 5 long long start = 1; 阅读全文
posted @ 2020-11-08 11:52 拾月凄辰 阅读(115) 评论(0) 推荐(0)
摘要: 思路 这题如果直接用暴力法,1~n逐一判断,每个数逐位判断需要O(L)的时间,其中L为n的位数,所以总的时间复杂度为O(L*n),这显然会超时。 方法:逐位判断,找规律 假设n是4位数abcd, 即n=abcd,从右往左逐位分析: - 对于n中的第4位数d: - 如果d ≥ 1,对于1~n中第4位数 阅读全文
posted @ 2020-11-07 14:01 拾月凄辰 阅读(109) 评论(0) 推荐(0)
摘要: 思路 方法一:简单排序 将数字存储在可调整大小的容器中。每次需要输出中间值时,对容器进行排序并输出中间值。 复杂度分析 时间复杂度:O(nlogn)+O(1)≃O(nlogn)。 添加一个数字对于一个有效调整大小方案的容器来说需要花费 O(1) 的时间。找到中间值主要取决于发生的排序。对于标准比较排 阅读全文
posted @ 2020-11-06 23:38 拾月凄辰 阅读(87) 评论(0) 推荐(0)
摘要: 思路 方法一:动态规划 1 class Solution { 2 public: 3 int maxSubArray(vector<int>& nums) { 4 //memo[i]表示以nums[i]结尾并且包含nums[i]的子数组的最大和 5 vector<int> memo(nums.siz 阅读全文
posted @ 2020-11-06 17:18 拾月凄辰 阅读(79) 评论(0) 推荐(0)
摘要: 组合数C(n,m)的大小有以下两种计算方法: (1) 直接用定义求,时间复杂度:O(m) int combi(int n, int m){ //求组合数的函数 int res = 1; for(int i = 0; i < m; ++i) { res *= n - i; res /= i + 1; 阅读全文
posted @ 2020-11-05 09:20 拾月凄辰 阅读(726) 评论(0) 推荐(0)
摘要: 思路 贪心思想,先对小孩的胃口和饼干的尺寸进行从小到大排序,每次选出能满足该小孩的最小饼干。 1 class Solution { 2 public: 3 int findContentChildren(vector<int>& g, vector<int>& s) { 4 // 先对小孩和饼干从小 阅读全文
posted @ 2020-11-05 08:44 拾月凄辰 阅读(79) 评论(0) 推荐(0)
摘要: 思路 贪心算法 因为区间的右边界end越小,可以给后面留到的空间就越大。所以按照区间的右边界从小到大进行排序,每次都选右边界最小并且左边界大于前一个区间右边界的区间,最后可以累加得到最大不重叠区间的个数m,最后用总区间个数-m即为要删去的最小区间数。 1 class Solution { 2 pri 阅读全文
posted @ 2020-11-05 08:42 拾月凄辰 阅读(239) 评论(0) 推荐(0)
摘要: 第1题 带时限的作业排序问题 问题描述: 设有一个单机系统、无其它资源限制且每个作业运行相等时间,不妨假定每个作业运行 1 个单位时间。现有 n 个作业,每个作业都有一个截止期限di>0,di 为整数。如果作业能够在截止期限之内完成,可获得 pi>0 的收益。问题要求得到一种作业调度方案,该方案给出 阅读全文
posted @ 2020-11-04 23:55 拾月凄辰 阅读(1814) 评论(0) 推荐(0)
摘要: 题目描述 问题描述: 在 n 个数当中找第k小元素。 输入: 第一行输入n的值,第二行输入n个数,第三行输入k的值。 输出: n 个数中的第k小元素。 要求: 你的算法最坏情况下应该在线性时间内完成。 示例1 : 输入: 5 8 1 3 6 9 3 输出: 6 示例 2: 输入: 10 72 6 5 阅读全文
posted @ 2020-11-04 23:26 拾月凄辰 阅读(1585) 评论(0) 推荐(0)
摘要: 思路 方法一:排序 对原数组从小到大排序后取出前 k 个数即可。 时间复杂度:O(nlogn),其中 n 是数组 arr 的长度。算法的时间复杂度即排序的时间复杂度。 方法二:堆 我们用一个大根堆实时维护数组的前 kk 小值。首先将前 kk 个数插入大根堆中,随后从第 k+1k+1 个数开始遍历,如 阅读全文
posted @ 2020-11-04 19:50 拾月凄辰 阅读(234) 评论(0) 推荐(0)
上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 75 下一页