A ray of sunshine


  • Home

  • Tags

  • Categories

  • Archives

巧用快排,秒杀 LeetCode 973. K Closest Points to Origin

Posted on 2019-09-05 | In Data Structure

细节决定成败。一个小细节可以让代码的性能大幅提升。

最近和朋友一起研究分治算法,看过《算法导论》后觉得,纸上得来终觉浅,绝知此事要躬行啊!遂去 LeetCode 上 Divide and Conquer 这个 Topic 下,做了这道题 973. K Closest Points to Origin。

本文分享作者在做题时发现的优秀代码细节,希望和大家一起吸取营养并体会其中乐趣。

阅读前建议大家先自己做一下该题,至少思考一下,然后再往下阅读,这样更容易体会到这个细节的优雅。

一、题目

973. K Closest Points to Origin

Read more »

堆(Heap)

Posted on 2019-08-26 | In Data Structure

注意本文说的堆是数据结构中的堆,而不是java内存模型中的堆。

一、定义

n个元素的序列{k1, k2, …, kn}当且仅当满足ki<=k2i, ki<=k2i+1或ki>=k2i, ki>=k2i+1(i=1,2,3,..,n/2向下取整),关系时,称之为堆。若堆顶元素最小,则称之为小顶堆或小根堆。若堆顶元素最大,则称之为大顶堆或大根堆。如下图所示。

二、性质

若以一维数组作为堆的存储结构,并将该一维数组看成是一个完全二叉树,则完全二叉树中所有非终端结点的值均不大于(或不小于)其左、右孩子结点的值。

堆顶元素(或完全二叉树的根)是堆中最小值(或最大值)。

最后一个非终端结点是第n/2向下取整个元素。

三、操作

  • 向上移动
Read more »

在Dell Precision5530上安装Arch

Posted on 2018-07-18 | In Linux

参考:

http://blog.51cto.com/shenfly231/1918426
https://www.linuxidc.com/Linux/2016-05/131059.htm
https://webby.land/2017/02/10/arch-linux-uefi-install-on-nvme-drives

综合以上3个教程,我安装成功的步骤如下:

1.parted分区

查看分区信息:
lsblk

parted对nvme0n1分区:
parted /dev/nvme0n1

查看:
(parted)print //先print看一下分区情况

清理:
(parted)rm 1 //如果有原来分区,先这样删除
(parted)rm 2
……

创建:
(parted)mklabel gpt
(parted)mkpart ESP fat32 1MB 513MiB //创建boot分区
(parted)set 1 boot on //设置1分区为启动
(parted)mkpart primary ext4 513MiB 201GiB //第2个分区给root
(parted)mkpart primary ext4 201GiB 943GiB //第3个分区给home
(parted)mkpart primary ext4 943GiB 100% //剩下的给交换分区

退出parted:
(parted)q

2.mkfs格式化

Read more »

Common words in emails 2

Posted on 2018-04-24 | In English
  1. The thing that confuses me is…
  2. I tried to make the following changes:
  3. It seems that…
  4. When analyzing the…
  5. The line that throws NPE looks like this:
    Read more »

Common words in emails 1

Posted on 2018-04-23 | In English
  1. We have a question regarding…
  2. Is there any rule to…
  3. I can not recall..
  4. As long as…
  5. spreadsheet
    Read more »

git cherry-pick 和 git log

Posted on 2018-04-04 | In Git

直接使用git命令有时比用图形化界面工具(如gitk,gui,smartgit等工具)效率高多了。比如我工作时处理的代码很庞大,用smartgit执行cherry-pick操作有时需要大于5分钟甚至根本无法响应,而直接在命令行执行命令进行操作几乎可以瞬间完成,节省了时间,提高了工作效率。

什么时候用cherry-pick?当你想把另一个分支的某个或者某些commit重新提交到当前分支的时候可以用这个命令,具体写法如下:

Read more »
Leon Chi

Leon Chi

Live well, love lots, and laugh often.

6 posts
4 categories
4 tags
GitHub E-Mail
Links
  • iisheng
  • caixiangyue
© 2019 Leon Chi
Powered by Hexo
|
Theme — NexT.Mist v6.0.6