快乐的程序员
算法-差分数组 算法-差分数组
题目: 2772. 使数组中的所有元素都等于零给你一个下标从 0 开始的整数数组 nums 和一个正整数 k 。 你可以对数组执行下述操作 任意次 : 从数组中选出长度为 k 的 任一 子数组,并将子数组中每个元素都 减去 1 。如果你可以
2024-03-13
leetcode刷题遇到的一个大坑 leetcode刷题遇到的一个大坑
写在前面刷过leetcode题目的同学应该知道,它的题目总是有超时限制。本人在做leetcode周赛的时间经常遇到,今天又遇到了一次 原题:6916. 和等于目标值的质数对 在思考好长时间和看别人答案的时候发现了一个注释 然后果断将预处
2024-03-13
go gin框架学习总结 go gin框架学习总结
简介Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 hello worldpackage main import ( "github.com/gin-gonic/gin"
2024-03-13
SOLID原则 SOLID原则
写在前面在程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期引入,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个
2024-03-13
网页版terminal,真香! 网页版terminal,真香!
写在前面在做项目过程中,由于甲方特殊网络需求,只能内网访问,并且只批准了团队内少数人通过vpn访问,其他人都无法访问。这个时候,如何能访问甲方内网的人能在本地开启一个网页版terminal,团队其他人通过网页版terminal访问甲方内容,
2024-03-13
redis五种基本数据结构及其编码方式(全且精) redis五种基本数据结构及其编码方式(全且精)
基本数据结构redis有9种基本数据结构,string,list,hash,set,zset,bitmap,GeoHash,HyperLogLog,Streams。今天先讨论一下前面5种常见的数据结构。 字符串stringstring表示的
2024-03-13
go泛型set go泛型set
写在前面今天项目中需要用到string类型的set,想起来项目中不少地方都需要,而且都是用map[string]bool实现的,既然这么多地方用到set去重,为什么不写一个set呢?而且go现在支持了泛型,为啥不写一个支持多种类型的set呢
2024-03-13
在函数内部能修改入参slice吗?不一定 在函数内部能修改入参slice吗?不一定
写在前面本文主要是考察对slice的底层理解,知识点就是slice struct有一个dataPtr,是一个指向数组的指针。理解这一点就能理解本问题,但是这个地方极易容易出错。 举个例子func testSlice1(arr []int)
2024-03-13
一起坚持做leetcode周赛 一起坚持做leetcode周赛
写在前面从23年1月份开始,我就坚持做leetcode上面的周赛题目,单周是每个星期日上午10:30-12:00,90分钟时间做4个编程题目,难度一般是:简单(3分)、中等(4分)、中等(5分)、困难(6分)。 从一开始只能做前面的一题、两
2024-03-13
今天在leetcode周赛中半个小时内解决一道动态规划题目 今天在leetcode周赛中半个小时内解决一道动态规划题目
写在前面动态规划算是比较难的题目,之前遇到这种题目都不知道怎么下手,或者想到用动态规划做也做不出来。今天比赛中的第三题还没读完题目就感觉应该用动态规划做,并且在纸上稍微思考了一下就写出了动态方程和边界情况,非常顺畅,再次记录一下 6433.
2024-03-13
100行代码实现迭代器模式,开箱即用 100行代码实现迭代器模式,开箱即用
迭代器模式介绍迭代器模式定义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 简单理解:对容器内元素遍历 2.迭代器模式角色划分 迭代器角色(Iterator):定义遍历元素所需
100行代码实现一个观察者模式,开箱即用 100行代码实现一个观察者模式,开箱即用
观察者模式介绍观察者模式(Observer Design Pattern)定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象。这个主题对象在状态发生变化的时,会通知所有的观察者对象,使他们能够更新自己。 定义对象间的一种一对多
12 / 23