笔记
文章平均质量分 73
blog_zhangtong
这个作者很懒,什么都没留下…
展开
-
go语言heap包的使用
文章目录go语言heap的使用前言源码分析例1:实现基于int数据集的二叉堆例2:实现基于string数据集的二叉堆实战练习: Leetcode-215.数组中的第k个最大元素go语言heap的使用前言在写算法的时候,遇到类似前n个最小值,最大值等问题,我们可以很容易想到堆来解。go语言提供了一个heap的包,而不需要我们自己手动的去实现一个堆。接下来学习一下它的使用。container/heap 包的使用源码分析heap里面有一个借口Interface,这个Interface就是我们原创 2021-04-17 12:49:07 · 1363 阅读 · 1 评论 -
Leetcode每日一题-2021.04-part2
文章目录Leetcode-2021.04-part24.17.220.存在重复元素Ⅲ方法一:暴力破解,索引区间搜索方法二:值域分桶+滑动窗口Leetcode-2021.04-part24.17.220.存在重复元素Ⅲ题目描述方法一:暴力破解,索引区间搜索分析分析题意:数组nums 和 参数k,t,要求:在数组中存在两个数 nums[i], nums[j]满足 nums[i], nums[j]差的绝对值 <= t且 i 与 j 的差值的绝对值 <=k不妨设 i &原创 2021-04-17 02:15:37 · 285 阅读 · 0 评论 -
Leetcode-并查集相关题
文章目录leetcode并查集系列题128.最长连续序列解法一:排序暴力破解解法二:建立搜索链(并查集思想)leetcode并查集系列题此博文主要总结leetcode并查集系列题的解法,由于不熟悉并查集,可能会用其他解法128.最长连续序列题目描述分析先理解题意,即给一个整数数组,数组内的数是乱序的,现在要求数组的元素能够成连续串(如:1,2,3,4,5,6 或者 10,11,12,13,14),求连续串的长度最大。解法一:排序暴力破解分析先对数组进行排序,使得数组有序从数组最原创 2021-04-15 20:51:16 · 280 阅读 · 0 评论 -
Leetcode-打家劫舍
文章目录Leetcode打家劫舍系列题198.打家劫舍213.打家劫舍ⅡLeetcode打家劫舍系列题打家劫舍是动态规划的经典题,虽然可以用其他方法解,但是在本文主要介绍动态规划的解法。198.打家劫舍题目描述分析动态规划在于找转移方程找出口如果只有一家,直接偷就完事了如果有两家,看两家哪家偷得多转移方程如果n=3, 那么两种情况,偷第二家和偷第一,第三家nums[3] += nums[1]n>3时,从第四家开始,前一家有可能来源于前面的第二家,或者第三家,取决原创 2021-04-15 01:14:08 · 191 阅读 · 0 评论 -
常见算法总结
文章目录常见算法或数据结构总结1.查找1.1 二分查找常见算法或数据结构总结博主总结的常见算法或数据结构的代码总结1.查找1.1 二分查找func BinarySearch(nums []int, target int) (index int, ok bool) { left := 0 right := len(nums) - 1 for left < right { mid := left + (right-left)>>1 if nums[mid] == tar原创 2021-04-08 21:14:08 · 57 阅读 · 0 评论 -
Leetcode-2021.04-记录
文章目录四月刷题记录1689.十-二进制数的最少数目四月刷题记录四月除每日一题外额外刷题1689.十-二进制数的最少数目题目描述分析和为n的十-二进制数的最少数目即用n不断去-十-二进制数,使得最终为0,且用的数目最少。此题的关键点在于:十-二进制数每一位最高就是10,所以要使得给定数的某一位m变成0,至少要-m次,使第m位为n;所以此题变转化为了求解字符串中的最大字面值!代码func minPartitions(n string) int { // max用于记录当前的最大字面原创 2021-04-06 20:35:59 · 88 阅读 · 0 评论 -
Leetcode-2021.03记录-part2
文章目录三月刷题记录-part254. 螺旋矩阵59. 螺旋矩阵Ⅱ190.颠倒二进制位61.旋转链表方式一方式二82.删除排序链表中的重复元素456.132模式三月刷题记录-part2此博文为个人学习笔记,记录2021年3月Leetcode每日一题刷题记录54. 螺旋矩阵题目链接描述给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例示例1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,原创 2021-04-06 20:27:12 · 114 阅读 · 0 评论 -
Leetcode-2021.03记录-part1
文章目录三月刷题记录-part1338. 比特位计数1. 动态规划-低位有效判断2. 动态规划-设置最低有效位896. 单调数列303. 区域和检索 - 数组不可变1. 暴力破解2. 构建数组进行巧妙的解决304. 二维区域和检索 - 矩阵不可变232. 用栈实现队列224. 基本计算器1047.删除字符串中所有相邻重复项331. 验证二叉树的前序序列化三月刷题记录-part1338. 比特位计数题目链接题目描述给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其原创 2021-04-06 20:24:31 · 132 阅读 · 0 评论 -
Leetcode刷题总结
文章目录Leetcode刷题总结1. 映射关系建立Leetcode刷题总结文章主要记录了笔者刷leetcode时,新的解题技巧和思路,用于个人的学习总结和参考。1. 映射关系建立笔者在解题时,遇到一些需要建立映射关系的题。第一考虑就是map,在使用map的时候,会造成额外空间的浪费,但是map建立哈希,寻址快,所以用起来较顺手。今天get到一个采用位运算方式建立映射的方法,来源于Leetcode-1684题,同意一致字符串的数目。题目描述最开始的分析笔者拿到题的第一考虑,是将allowed原创 2021-04-03 11:56:20 · 219 阅读 · 0 评论 -
Leetcode每日一题-2021.04
文章目录Leetcode每日一题-2021.044.1-1006.笨阶乘Leetcode每日一题-2021.04Leetcode刷题地址4.1-1006.笨阶乘题目描述分析本题其实是阶乘的一个变形,只是将原来的*,变成了*,/,+,-核心在于怎么将这一个变化用代码进行表述其实涉及到操作符,并且存在操作符优先级的问题,我们都可以考虑用栈操作在这一题我选择用switch判定本题注意点:操作符有优先级,不能直接对返回值ret进行乘除加减,所以涉及到值的记录操作符的表示详情见代码原创 2021-04-01 10:04:39 · 301 阅读 · 0 评论 -
Docker学习笔记-进阶
文章目录Docker进阶1. 容器数据卷什么是数据卷使用数据卷具名和匿名挂载初识DockerFile数据卷容器2. DockerFileDockerFile构建过程DockerFile的指令实战测试:构建自己的centosCMD和ENTRYPOINT的区别实战测试:tomcat镜像笔记来源:kuangstudy视频学习学习链接Docker进阶1. 容器数据卷什么是数据卷docker的理念回顾:将我们的应用和运行环境打包成镜像发布,之后启动以容器运行。数据怎么保存呢?如果数据存储在容器中,容器原创 2021-03-30 00:29:19 · 387 阅读 · 0 评论 -
Docker学习笔记-入门
文章目录docker1. docker安装-基于centOS安装docker阿里云镜像加速2. run做了什么3. Docker的常用命令帮助命令镜像命令容器命令常用的其他命令小结4. 练习1. nginx安装2. tomcat安装3. 部署ES+Kibana5. docker 可视化6. 镜像相关镜像是什么镜像加载原理分层理解commit镜像笔记来源:kuangstudy视频学习学习链接docker1. docker安装-基于centOS安装dockerdocker官方安装手册参考根据官方原创 2021-03-30 00:29:03 · 332 阅读 · 0 评论 -
初识Java三大特性
初识Java三大特性继承首先,理解继承是什么?我们通常情况下,理解Java的面向对象编程,拓展到继承是父子的关系。对于初学者来说,这样理解是没有任何问题的。那么,再深入的去理解呢?为什么要有继承?Java是拓展性很好的一门语言,从跨平台实现的JVM上就能看出这一特点。而继承,其实很大程度上也是拓展性的体现。一个很好的内存模型——洋葱模型:解释Dog继承自Animal,其实对于Dog类来说就是在Animal类的基础上扩展了一些新的东西。Dog保留了Animal提供的eat方法,同原创 2021-03-29 09:27:57 · 97 阅读 · 0 评论 -
Java-Scanner:Next和NextLine
浅析Scanner:next和nextLine区别Scanner 下的next和nextLine方法区别next() 读取数据时如果遇到 空格,tab,回车 就停止读取了,不读取符号nextLine() 读取数据时如果遇到回车,才停止读取 读取回车符 并且丢掉回车符所有的输入都只在键入回车符的时候会停止同时我们得明白,Scanner的本质还是一个流,流技术在基础下会讲 咱们现在不用深究 只需要明白一点 数据是输入在流管道里面的只有当按下回车的时候 流管道的数据输入才停止 但是读取数据按照原创 2021-03-29 09:27:22 · 345 阅读 · 0 评论 -
Go-GPM模型浅析
Go语言-GPM内存模型浅析相关知识基础什么是多线程多线程一般指的是操作系统级别的多线程。指的是任务的调度不由我们手动触发,而是通过一些程序命令,把任务交给系统来进行调度,而系统怎么去调度这些任务,我们并不关心。只需要告诉系统哪些任务是优先的,哪些是不怎么重要的,系统就会根据这种优先级去分配处理任务。并发和并行并发:宏观上面的同时执行,实际上是指任务在同一时段能够共同被调度的一种描述。并行:同一时刻的执行,指任务能够在同一个时刻被调度同时执行。具体在计算机中的体现呢?我们已经知道多线程原创 2021-03-29 09:26:19 · 363 阅读 · 1 评论