1 | 插入排序算法: |
又一次被链表的复杂关系搞晕了
用了不太合题意的辅助空间做出来的
1 | /** |
借用官方的图理清思路:
1 | class Solution { |
参考文献
1 | 插入排序算法: |
又一次被链表的复杂关系搞晕了
用了不太合题意的辅助空间做出来的
1 | /** |
借用官方的图理清思路:
1 | class Solution { |
参考文献
1 | 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: |
笨方法 先对行二分查找,再对列二分查找
1 | class Solution { |
官方思路
将二维数组转化为一维数组然后对整个数组进行二分查找
每个中间的节点的行列值为:
1 | class Solution { |
官方题解
1 | class Solution { |
参考文献
1 | 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 |
年轻人不讲武德,欺负题目没有闪,直接覆盖前面的0,后面再补上
1 | class Solution { |
1 |
|
使用两个链表
一个链表保存小于分区值的值,另一个链表保存大于分区值的值。
小链表的尾和大链表的头结合
1 | /** |
使用两个哑节点,小于 $x$ 的放到第一个节点,大于 $x$ 的放到第二个节点
1 | class Solution { |
反思 : 对链表的理解还是不够清楚
参考文献
1 | 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 |
1 | class Solution { |
1 | class Solution { |
1 | class Solution { |
参考文献
1 | 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 |
年轻人不讲武德
不使用链表直接修改,而是用类似于桶排序的方法搞
1 |
|
将尾节点与头节点相连接,新的链表头在位置 $n-k$ 处,其中 $n$ 是链表中点的个数,新的链表尾就在头的前面,位于位置 $n-k-1$.
当 $k$ 大于等于链表长度的时候 $k = (k // n) * n + k % n$
1 |
|
参考文献
1 |
|
直接排序法
1 | class Solution { |
桶排序法
1 | class Solution { |
参考文献
1 | 给出一个区间的集合,请合并所有重叠的区间。 |
解题思路:
时间复杂度 O(n*n)
空间复杂度 O(n)
1 |
|
官方题解按照第一个值排序
1 |
|
参考文献
1 | 假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。 |
1 | class Solution { |
同样地,我们也可以将每个人按照身高从大到小进行排序,处理身高相同的人使用的方法类似,即:按照 $h_i$ 为第一关键字降序,$k_i$
为第二关键字升序进行排序。如果我们按照排完序后的顺序,依次将每个人放入队列中,那么当我们放入第 $i$个人时:
第 $0$, $\cdots$,$i−1$ 个人已经在队列中被安排了位置,他们只要站在第$i$个人的前面,就会对第$ i$ 个人产生影响,因为他们都比第 $i$ 个人高;
而第 $i+1$, $\cdots$,n−1 个人还没有被放入队列中,并且他们无论站在哪里,对第 $i$ 个人都没有任何影响,因为他们都比第 $i$个人矮。
在这种情况下,我们无从得知应该给后面的人安排多少个「空」位置,因此就不能沿用方法一。但我们可以发现,后面的人既然不会对第 $i$ 个人造成影响,我们可以采用「插空」的方法,依次给每一个人在当前的队列中选择一个插入的位置。也就是说,当我们放入第 $i$ 个人时,只需要将其插入队列中,使得他的前面恰好有 $k_i$ 个人即可。
1 | class Solution { |
参考文献
难度中等769
给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例 1:
1 | 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] |
示例 2:
1 | 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] |
提示:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 10
-100 <= matrix[i][j] <= 100
1 | class Solution { |
1 | class Solution { |
1 | class Solution { |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true