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

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

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

一、设计原理 哈希表(也就是我们说的map)是计算机应用领域非常重要的数据结构之一,读写的时间复杂度均是O(1),是典型的 以空间换时间 设计。它的优点除了读写性能优异,还在于它提供了键值之间的映射,为程序设计提供了极大的方便。要想实现一个性能优异的哈希表,需要关注两个关键点:哈希函数 和 冲突解决方法。 ...

一、概述 1. 为什么在内核的线程调度器之外,Go 还需要实现一个自己的调度器 主要解决系统线程太重的问题: 创建与切换线程 太重:都需要在用户态和内核态之间切换,开销较大; 系统线程内存使用 太重:一方面,创建系统线程时会分配一段大部分情况下都用不完的栈内存,造成浪费;另一方面,栈内存空间创建后其大小不会再变化,有溢出的风险。 goroutine 是 Go 语言实现的用户态的线程,可以看做是对系统线程进行的一层抽象。有了这层抽象,Golang 程序员不会直接面对系统线程,直接使用 goroutine 就可以了,而操作系统不会 care 什么 goroutine,只是执行设定好的系统线程就好了。这层抽象,就是 Go 的调度器,后面会详细说明。Go 很精巧地解决了上述两个问题: ...

1. Go语言指针的限制 go语言中也有指针,但相对C语言的指针来说,有了很多限制,但这也算是go的成功之处:既可以享受指针带来的便利,又避免了指针过度使用带来的危险。主要的限制如下: ...

在主流的编程语言中数组及其相关的数据结构是使用得最为频繁的,只有在它(们)不能满足时才会考虑链表、hash 表(hash 表可以看作是数组和链表的混合体)和更复杂的自定义数据结构。 ...

一、 前言 我们完成程序的编写之后,经过编译,编译器会将我们的程序编译成一行行机器指令,放到一个可执行文件中;程序执行时,可执行文件被加载到内存,机器执行被放置到虚拟内存的“代码段”,并分配以及初始化程序运行过程中需要的堆栈。会形成如下的结构: ...

选择优化的数据类型 MySQL 支持多种数据类型,但是每个类型都有自己适合的场景,选对类型对性能的提高至关重要。以下原则仅供参考: 更小的通常更好 一般情况下,应该尽量选择可以存储数据的最小数据类型。如只需要存 0 ~ 200 ,那么字段类型设置为 unsigned tinyint 更好。 ...

这是你自定义的文章摘要内容,如果这个属性有值,文章卡片摘要就显示这段文字,否则程序会自动截取文章的部分内容作为摘要