编写并分析第一个 HarmonyOS APP

创建第一个 HarmonyOS 项目任何一门编程语言写出的第一个程序几乎都是 Hello World,这在编程界已经成为经典了。本文就从这个经典开始,了解 HarmonyOS 的应用开发。 选择项目类型在欢迎界面点击新建项目,选择 Java 的 Empty Ability 新建,填入包名等参数。这里的 Abili...

102. 二叉树的层序遍历

题目提示给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]] 示例 2:输入:root = [1]输出:[[1]] 示例 3:...

80. 删除排序数组中的重复项 II

题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说明:为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式...

26. 删除排序数组中的重复项

题目给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过: 更改数组 nums ,...

进程、线程和协程(goroutine)

进程、线程和协程(在 Go 语言中称为 goroutine)都是实现程序并发执行的基本单元,但它们在内存隔离、调度方式、切换成本和使用场景等方面有明显区别。这里做一个综合的总结和对比。 进程进程是程序运行时在操作系统中创建的一个独立实体,每个进程拥有独立的内存地址空间(包括独立的堆、栈、全局变量等),资源由操作系...

Golang 程序容器化以及 CGO 编译问题

Go 语言镜像精简为了精简镜像,一般会加载两个镜像,第一层是编译环境,来根据源码编译出可执行的二进制文件。然后拷贝可执行文件到 scratch 镜像中,作为最终的镜像: 12345678910111213FROM xxx:lastest AS builderARG SVCARG ARCHARG GOARMWORK...

Nginx 配置 Websocket 反向代理和解决跨域问题

记录一个用 nginx 配置 websocket 和跨域的问题。 配置 websocket 反向代理WebSocket 应用程序可以在客户端和服务端保持长连接,实现实时通信。并且 WebSocket 协议的握手与 HTTP 协议兼容,所以可以通过 HTTP 服务器代理 WebSocket 请求。 所以一开始的配置...

17.11. 单词距离

题目描述有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗? 示例:12输入:words = ["I","am","a",&qu...

Golang 定时 Context 的使用

WithTimeout 的使用下面的例子通过 WithTimeout 创建了一个带有超时的 context。在后面一个阻塞函数任务执行超时后,取消任务继续执行。 123456789101112131415161718192021222324package mainimport ( "context&qu...

最长回文子串

题目最长回文子串 提示 给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 1: 123输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。 示例 2: 12输入:s = "cbbd"输出:&...