面试题:交替打印数字和字符串

题目描述 使用两个 goroutine 交替打印序列,一个 goroutine 打印数字, 另外一个 goroutine 打印字母, 最终效果如下: 1A2B3C4D5E6F7G8H9I10J11K12L13M14N15O16P17Q18R19S20T21U22V23W24X25Y26Z 思路 使用 channel 来控制打印的进度。使用两个 channel,来分别控制数字和字母的打印进度,数字打印完通过 channel 通知数字打印,数字打印完通过 channel 通知字母打印。如此周而复始,直到终止条件。 ...

March 31, 2021 · JemmyHu(hujm20151021@gmail.com)

排序算法

1. 堆排序 堆 是一种数据结构,它具有如下特征: 是一棵完全二叉树 父节点的值 > 子节点的值 1.1 完全二叉树 若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是 完全二叉树。 ...

September 24, 2020 · JemmyHu(hujm20151021@gmail.com)

LeetCode-位运算

位运算 位运算讲究技巧,需要多积累经验。 一、背景知识 Go 语言支持的 位运算符 如下: 运算符 描述 规则 & 按位 与 二者同为 1 时结果才为 1,否则为 0 | 按位 或 二者同为 0 时结果才为 0,否则是 1 ^ 按位 异或 相同为 0,相异为 1 « 左移 n 位,相当于乘以 2 的 n 次方 后面补 0 » 右移一位,相当于除以 2 的 n 次方 截掉最后一位 1. 与 将参与运算的两个数 各对应的二进制位 相与。只有当二者参与运算的对应位同为 1 时,该位才为 1,否则为 0。 ...

September 22, 2020 · JemmyHu(hujm20151021@gmail.com)

LeetCode-三数之和问题

leetcode 上 三数之和 问题: 15. 三数之和 259. 较小的三数之和 16. 最接近的三数之和 1. 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素a,b,c ,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。 ...

September 19, 2020 · JemmyHu(hujm20151021@gmail.com)

LeetCode-两数之和问题

leetcode 上 twoSum 相关的问题: 1. 两数之和 167. 两数之和 II - 输入有序数组 170. 两数之和 III .数据结构设计 1. 问题描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 ...

September 19, 2020 · JemmyHu(hujm20151021@gmail.com)