暮春早夏的月亮
原是情人的月亮,不比秋冬是诗人的月亮
首页
Github
Resume
编程
提高编程姿势水平。
2021/12/26
编程
Rust 新手错误和最差实践
> 原文:[Common Newbie Mistakes and Bad Practices in Rust: Bad Habits](https://adventures.michaelfbryan.com/posts/rust-best-practices/bad-habits/#using-sentinel-values) > 译者:[Yidadaa](https://github.c...
2020/03/18
编程
树和数组的千层套路
> 今天教你怎么在线性数组和二叉树间反复横跳。 目录: - [x] 二叉堆 - [ ] 树状数组 - [x] 线段树 在最简单的一类数据结构中,有两种最为基础:线性数组和树,它们在实际的应用中十分常用,比如线性数组用来存储结构化数据,树用来存储一些有层级归属关系的数据。一个最典型的使用树的场景就是浏览器中的 GUI 渲染策略,在你阅读本篇文章的时候,浏览器就已经从 HTML 文件...
2020/02/27
编程
花式遍历二叉树
> 众所周知,递归是解决问题的良药,但是却不利于装逼,今天教你如何在最简单的问题上装逼。 一般来说,基本所有的二叉树的题目都需要遍历树的每一个节点来找到解,在本科阶段学习数据结构时,所有的教材都会教给我们如何使用递归来执行各种遍历,诚然,递归形式的遍历不可谓不简洁: ```python class Node(): def __init__(self, val, left, righ...
2020/02/12
编程
LeetCode 趣题赏析 - 448. 找到数组中消失的数字
> 这是一道简单题,但是题目中的附加条件使得这道题别具趣味性。 ## 题目 给定一个范围在 `1 ≤ a[i] ≤ n` ( `n` = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。 找到所有在 `[1, n]` 范围之间没有出现在数组中的数字。 您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间...
2019/06/29
编程
LeetCode困难题赏 - 600.不含连续1的非负整数
> 本文试从文法角度给出此题的解题思路。 ### 题目 给定一个正整数 n,找出小于或等于 n 的非负整数中,其二进制表示不包含 连续的1的个数,其中$1\leq n \leq 10^9$。 **示例:** ``` 输入: 5 输出: 5 解释: 下面是带有相应二进制表示的非负整数<= 5: 0 : 0 1 : 1 2 : 10 3 : 11 4 : 100 ...
2019/06/24
编程
LeetCode困难题赏 - 887.扔鸡蛋
### 题目 假设有$K$个鸡蛋和$N$层楼,每个蛋的性质完全相同,而且如果某个蛋已经碎了,就没法再次使用。假如存在楼层$F, F\in[0, n]$,且鸡蛋从任何高于$F$的楼层扔下都会碎掉,但从低于或等于$F$的楼层扔下则不会碎。 每次移动,都可以使用一个鸡蛋从某个楼层扔下,如果你想准确地测得$F$的值,那么在最坏的情况下,最少需要移动几次? 原题链接:[Leetcode 887...
2018/08/09
编程
LintCode 困难题赏 - 103.寻找带环链表入口
### 题目 给定一个链表,如果链表中存在环,则返回到链表中环的起始节点,如果没有环,返回null。 **要求**:不使用额外空间。 **例子**:带环链表`1->5->3->4->6->(index-2)`,返回值为`index-2`对应的节点,即值为`5`的那个节点。 ### 题解 这道题可以说是链表题目中的经典题目了。解这道题之前,还有道题(LintCode No....
2018/08/07
编程
某算法竞赛初试题解 - 3K问题
### 题目 给定包含N个正整数的**非递减**数组A,假设该数组以以下形式保存了某个正整数K的值,即: $$K = \sum_{i=0}^N 2^{A[i]}$$ 例如给定$A=[1,4,5]$,则$K=2^1+2^4+2^5=50$。 则给出一个算法,计算出$3K$的二进制表示中为`1`的比特个数。 例如$3K=150=10010110_2$,程序返回值为`4`。 **...
2017/10/28
编程
如何有效地预估工作量
在实际开发过程中,难免要对自己手头的工作进行工作量预估,其实笔者一开始预估工作量的时候总是感到没谱,往往会得出过于乐观的结论,也就是所谓的“程序员的乐观”,老鸟程序员经常告诫我们说:“宁可多算一周,不可少估一天”。过于乐观地估计工作量,不仅会让自己疲于赶进度,还会连累其他的开发伙伴。所以本文就着重讲一下如何行之有效地做出正确的工作量预估。 由于笔者能力有限,本文只讲单个开发者的情况,如果是团...
2017/09/23
编程
如何优雅地使用服务器
最近师兄给我分配了一个实验室服务器地账号,自己就琢磨着怎么好好地折腾一下这个服务器,但无奈我的账号没有root权限,安装软件只能通过自己编译的方式完成,并且师兄只分配给我一个端口,我要想运行什么web服务,只能绑定到这一个端口上面,一头雾水之际,突然看到了一个神器:SSH端口转发。 ## 什么是SSH端口转发? 让我们先来了解一下端口转发的概念吧。我们知道,SSH 会自动加密和解密所有...
2017/09/07
编程
LaTex on Linux配置指南 - TexLive
> 系统:Ubuntu 17.04 > 软件搭配:texLive2017 + VSCode ## 简述 导师要求我用英文写周报,而且强制要求用LaTex完成,于是乎就花了点时间配置了一下LaTex环境。目前有很多IDE形式的LaTex集成环境了,但是我喜欢用一个编辑器搞定所有事情,于是选用了TexLive + VSCode的配置,其他配置可以参考这个[知乎答案](http...
2017/08/18
编程
经典统计学习方法——决策树(ID3/C4.5/CART)
最近开始技术♂转型,开始搞机器学习,使用教材是李航老师的《统计学习方法》,基本涵盖了经典的机器学习方法,只不过缺少神经网络部分,准备看完这本书之后,继续学习 [CS231n](http://cs231n.stanford.edu/) 。 前三章的内容都比较基础,第一章介绍了统计学习的基本要素以及基本步骤,第二、三章分别介绍了两种基础的模型:感知机和k近邻法,都比较简单,50行代码就能搞定...
总览
12
共发布了 12 篇文章
编程
12
提高编程姿势水平。
小记
8
一些没什么卵用的人生经验。
笔记
3
学习笔记,备忘用
历史人文
1
不能忘记的事物,不能舍弃的记忆。