编程拯救世界

欢迎关注微信公众号「编程拯救世界」。专注于服务端研发、编程基础与冒险。
31 篇文章
10 人订阅

全部文章

江不知

《Head First 设计模式》学习笔记 | 策略模式

我最近在看大名鼎鼎的《Head First 设计模式》。这本「OO 圣经」用 Java 实现各类设计模式,对于我 —— 一个非 Java 爱好者而言,读起来并不...

6500
江不知

图解算法 | 摩尔投票法求多数元素

摩尔投票法(Boyer–Moore majority vote algorithm),也被称作「多数投票法」,算法解决的问题是:如何在任意多的候选人中(选票无序...

3900
江不知

你有一份 2019 年 GitHub 年度报告待领取

我们即将与 2019 挥手作别,踏入崭新的 2020。一到年末,各个平台都在整理数据,出具一份属于自己平台的「年度报告」。而对于技术人而言,如果你是一位开源爱好...

7530
江不知

图解精选 TOP 面试题 007 | 杨辉三角

杨辉三角可以说是一道大家非常熟悉的题目了,一开始学 C 语言的时候就经常做打印杨辉三角的作业。

9520
江不知

图解精选 TOP 面试题 006 | 进制转换

与其他进制转 10 进制的计算方式相同。我们假设 n 位上的数字为 ,那么该位置所产生的 10 进制数值为:

3710
江不知

图解精选 TOP 面试题 005.1 | 反转链表之递归求解

在上一篇《图解精选 TOP 面试题 005 | 反转链表之迭代求解》中,我们介绍了该题的迭代求解法,本篇再说说如何进行递归求解。

8620
江不知

图解精选 TOP 面试题 005 | 反转链表之迭代求解

链表反转在面试中非常常见,我也在面试中遇到过这道题。在本篇文章中我们先说说如何用迭代法求解该题。

6320
江不知

图解精选 TOP 面试题 004 | LeetCode 108. 将有序数组转换为二叉搜索树

本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。

11120
江不知

搞定面试算法系列 | 贪心算法与正确性归纳证明

贪心算法就是让计算机模拟一个「贪心的人」来做出决策。这个贪心的人是目光短浅的,他每次总是:

10110
江不知

面向对象困境之:横切关注点

日志功能就是横切关注点的一个典型案例。日志功能往往横跨系统中的每个业务模块,即「横切」所有需要日志功能的类和方法体。所以我们说日志成为了横切整个系统对象结构的关...

8730
江不知

开源世界大冒险 | 第 2 期:Git 基础

在第二期《开源世界大冒险 | 第 2 期:聊聊版本控制》中,我们对版本控制进行了讲解。Git 就是目前世界上最先进的分布式版本控制系统,它支持离线工作且高度自由...

6310
江不知

谈谈堆与栈:数据结构和内存角色

堆包含一个链表来维护已用和空闲的内存块。在堆上新分配(用 new 或者 malloc)内存是从空闲的内存块中找到一些满足要求的合适块,这个操作会更新堆中的块链表...

9010
江不知

图解精选 TOP 面试题 003 | LeetCode 344. 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

6830
江不知

聊聊 Go 语言中的面向对象

在 Go 语言中可以使用结构体[2](Structs)对属性进行封装,结构体就像是类的一种简化形式。

8920
江不知

图解精选 TOP 面试题 002 | LeetCode 104. 二叉树的最大深度

题目要求求出二叉树的最大深度,我们知道,每个节点的深度与它左右子树的深度有关,且等于其左右子树最大深度值加上 1,可以写作:

4710
江不知

工具安利 | docsify 入坑指南与我放弃 Gitbook 的那些理由

leetcode-notebook[1] 的题解越来越多,原先选择 Gitbook[2] 构建解题本的弊端逐渐显现出来,每次补充一道题解重新 build 项目时...

14230
江不知

精选 TOP 面试题 001 | LeetCode 237. 删除链表中的节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。

6710
江不知

深入浅出:举个例子解读原码、反码与补码

在 Go 语言中,int8 代表有符号 8 位整数。你觉得输出结果是什么呢?我们在文末再公布答案,在此之前,我们先来回顾一下有符号整数是什么。

7620
江不知

图解双指针 | LeetCode 27. 移除元素

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。

6110
江不知

认识 Go 语言中的数组

new 返回类型的指针,因此 a1 与 a2 的区别在于:a1 的类型为 [5]int,a2 的类型为 *[5]int。

5210

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动