第 81 期:什么是爱
@Author : Lewis Tian (taseikyo@gmail.com)
@Link : github.com/taseikyo
@Range : 2024-09-22 - 2024-09-28
Weekly #81
本文总字数 1268 个,阅读时长约: 1 分 50 秒,统计数据来自:算筹字数统计。

*Photo by Riccardo Carlo Rossi on Unsplash
Table of Contents
algorithm 🔝
1. 只出现一次的数字
题目
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
解答
func singleNumber(nums []int) int {
x := 0
for _, val := range nums {
x = x^val
}
return x
}
数据:0ms 100%; 7.67MB 52.95%
2. 多数元素
题目
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋
的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。
解答
这里有个技巧在这里:多数元素必定是比其他元素多的,遍历一次对比前后元素,只要不相同则相互消去,剩下的就是多数元素。
func majorityElement(nums []int) int {
res, count := 0, 0
for _, num := range nums {
if count == 0 {
res = num
}
if res == num {
count++
} else {
count--
}
}
return res
}
数据:0ms 100%; 8.06MB 26.82%
review 🔝
没见过“正态(normal)分布”。

《被束缚掉》(tied 有束缚和平局的意思,原文指的是平局):

“惰性作为一种优化技术”、“动态编程作为惰性形式”,一股子机翻味……(而且“动态编程”应该是“动态规划(Dynamic Programming)”。)

有点难绷,还是要学好英语,对于专业书籍还是看原版吧
tip 🔝
share 🔝
1. 什么是爱
来自知乎的一个回答,其中只有一句话,两张截图:
晚上约了几个好友小酌,临近尾声时收到两条消息:


最后更新于
这有帮助吗?