A题 "链接" 思路分析: 因为只需要做到相邻的不相同,利用三个不同的字母是肯定可以实现的, 所以直接先将所有的问号进行替换,比如比前一个大1,如果与后面的冲突,则再加一 代码(写的很烂): ...
分类:
其他好文 时间:
2019-12-06 21:49:09
阅读次数:
121
CSP-S2 2019 D1T3 考场上写了2h还是爆零……思维题还是写不来啊 思路分析 最开始可以想到最简单的贪心,从小到大枚举每个数字将其移动到最小的节点。但是通过分析样例后可以发现,一个数字在移动的过程中也可能有无关的边的删除,很难处理。显然直接贪心是不可能的。 分析删边对图的影响。可以发现, ...
分类:
其他好文 时间:
2019-12-02 13:32:44
阅读次数:
82
1. 具体题目 给定一个字符串,请将字符串里的字符按照出现的频率降序排列。 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。 2.思路分析 桶排序,思路同 lee ...
分类:
编程语言 时间:
2019-12-01 11:54:26
阅读次数:
92
本文将阐述堆和堆排序的基本原理,通过本文将了解到以下内容: 堆数据结构的定义 堆的数组表示 堆的调整函数 堆排序实践 1.堆的简介 堆是计算机科学中的一种特别的树状数据结构。若是满足以下特性,即可称为堆:给定堆中任意节点P和C,若P是C的母节点,那么P的值会小于等于C的值。若母节点的值恒小于等于子节 ...
分类:
编程语言 时间:
2019-11-29 10:40:24
阅读次数:
124
题目描述: 思路分析: (这是一个很经典的树形dp问题) 我们可以先不管这个否是二叉树,我们发现,如果我们选了 cur 这个节点 那么就说明 我们不能选它的所有子节点(还有父节点)。对于每一个节点,都只有选和不选两种情况。我们每次考虑一棵子树,那么根只有两种情况,选和不选(我们让dp[0]表示不选, ...
分类:
其他好文 时间:
2019-11-27 10:34:56
阅读次数:
72
CSP-S2 2019 D2T3 考场上扔了T2来打这题的部分分,然后没看到数据范围是等号,不知道怎么判完全二叉树然后40分滚粗…… 思路分析 很容易想到$O(n^2)$每次暴力找重心,这个暴力可以用各种神仙方法优化。 通过分析35分的特殊构造分,可以有一个想法,既然特殊构造可以有结论,那么是否也可 ...
分类:
其他好文 时间:
2019-11-26 22:49:10
阅读次数:
134
1. 具体题目 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ],k = 8, 返回 13。 2. 思 ...
分类:
编程语言 时间:
2019-11-25 20:25:43
阅读次数:
86
题目描述: 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 思路分析: 关键:这道题的关键是对要定位的“数”做二分,而不是对数组的索引做二分。要定位的“数”根据题意在 1 和 ...
分类:
其他好文 时间:
2019-11-25 11:07:19
阅读次数:
62
题目描述: 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 思路分析: 思路一:排序+遍历,如果是升序,那就是返回nums[n-k],如果是降序,那就是返回nums[k-1] 时间复杂度:O(Nlogn) 空间复杂度:O( ...
分类:
编程语言 时间:
2019-11-20 15:34:02
阅读次数:
81
题目描述: 反转一个单链表。 思路分析: 方法一:迭代假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3。 在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来 ...
分类:
其他好文 时间:
2019-11-19 16:58:30
阅读次数:
73