01 2022 档案

摘要:Ok 梳理一下思路,先按照攻击力进行排序,攻击力相同的按照防御力升序排序 if n[i].att == n[j].att { return n[i].def < n[j].def } return n[i].att < n[j].att [{1 27} {3 60} {9 26} {14 6} {1 阅读全文
posted @ 2022-01-28 16:45 丶Blank 阅读(31) 评论(0) 推荐(0)
摘要:同上一篇,使用堆排序的方式做。 第一步构建最小堆,构建好之后数组的第一个元素就是最小的; 第二步排序,开始执行k-1次sift,每次将剩余元素中最小的元素放到未排序元素的末尾 第三步,将数组的后k个数返回即为数组中最小的k个数。 func getLeastNumbers(arr []int, k i 阅读全文
posted @ 2022-01-27 20:51 丶Blank 阅读(32) 评论(0) 推荐(0)
摘要:首先BuildHeap,build heap是指让数组符合堆的性质,最大堆就是根节点的值>=子节点的值。 第一步build完之后,arr[0]就是最大的元素; 然后执行k-1次调整,就会把第k大的元素调整到arr[0]的位置。【要第一大的元素,就不需要再调整了,要第二大就再调整一次,以此类推...】 阅读全文
posted @ 2022-01-27 20:35 丶Blank 阅读(165) 评论(0) 推荐(0)
摘要:LeetCode 147 单链表插入排序,主要知识点,单链表翻转。 单链表翻转关键点只有4步。 1. 暂存Next节点 2. 将当前节点Next 指向Head的Next 3. 将Head的Next指向当前节点 4. 将暂存节点赋值给当前节点 /** * Definition for singly-l 阅读全文
posted @ 2022-01-20 00:09 丶Blank 阅读(51) 评论(0) 推荐(0)