摘要: 232 实现队列 // go本身并不支持原生的栈和队列结构,都是通过切片实现的 //leetcode submit region begin(Prohibit modification and deletion) type MyQueue struct { Data []int Size int } 阅读全文
posted @ 2024-07-26 13:40 周公瑾55 阅读(12) 评论(0) 推荐(0)
摘要: 151 翻转单词 func reverseWords(s string) string { // 思考: 判断单词条件是从0或者空格开始到终或者空格结尾,最简单方式strings.split之后变成切片,然后反转就行了 // 考虑双指针,左指针指向单词首位,右指针指向单词末尾 var res []b 阅读全文
posted @ 2024-07-25 16:54 周公瑾55 阅读(29) 评论(0) 推荐(0)
摘要: 344 反转字符串 func reverseString(s []byte) { // 思路 思考双指针 left , right := 0, len(s) - 1 for left < right { s[left], s[right] = s[right], s[left] left++ rig 阅读全文
posted @ 2024-07-24 13:09 周公瑾55 阅读(34) 评论(0) 推荐(0)
摘要: 454 四个数相加==0 func fourSumCount(nums1 []int, nums2 []int, nums3 []int, nums4 []int) int { // 1. 用哈希表存储 nums1 和 nums2 两者之和的所有可能情况 // 2. 遍历 nums3 和 nums4 阅读全文
posted @ 2024-07-23 15:10 周公瑾55 阅读(11) 评论(0) 推荐(0)
摘要: hash表 遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法 242 判断字母异位词 关于字符串的遍历问题 // 什么情况下遍历的是rune []int36类型, 什么情况下遍历的是 char 字节类型 ? s := "Hello, 世界" for i, r := range s { f 阅读全文
posted @ 2024-07-22 14:36 周公瑾55 阅读(22) 评论(0) 推荐(0)
摘要: 24 两两交换节点 func swapPairs(head *ListNode) *ListNode { // 思路 涉及到链表增删改操作,优先考虑使用虚拟头节点 此处为双指针加上虚拟头节点 if head == nil || head.Next == nil { return head } var 阅读全文
posted @ 2024-07-20 14:34 周公瑾55 阅读(41) 评论(0) 推荐(0)
摘要: 链表 type Node struct { Data any Next *Node } // 创建一个长度为n的链表 func CreateNode(head *Node, n int) { for i := 0; i < n; i++ { head.Next = &Node{rand.Intn(1 阅读全文
posted @ 2024-07-19 16:54 周公瑾55 阅读(22) 评论(0) 推荐(0)
摘要: 977 有序数组平方 func sortedSquares(nums []int) []int { // 思路,最简单,先平方,再排序 for idx, num := range nums{ nums[idx] = num * num } // 插排思想,维护两个列表,将无序列表元素插入到有序列表合 阅读全文
posted @ 2024-07-18 16:25 周公瑾55 阅读(26) 评论(0) 推荐(0)
摘要: 小收获 数组是存放在连续内存空间上的相同类型数据的集合 测试一下go func main() { fmt.Printf("Size of int: %d bytes\n", unsafe.Sizeof(int(0))) fmt.Printf("Size of int8: %d bytes\n", u 阅读全文
posted @ 2024-07-17 16:08 周公瑾55 阅读(265) 评论(0) 推荐(0)