腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
Krains
专栏成员
举报
44
文章
15460
阅读量
12
订阅数
订阅专栏
申请加入专栏
全部文章(44)
编程算法(34)
java(8)
node.js(7)
jvm(4)
存储(3)
数据分析(3)
对象存储(2)
c++(2)
云数据库 SQL Server(2)
打包(2)
linux(2)
http(2)
缓存(2)
面向对象编程(2)
dfs(2)
javascript(1)
android(1)
数据库(1)
sql(1)
ide(1)
文件存储(1)
NAT 网关(1)
网站(1)
企业(1)
serverless(1)
jdk(1)
hashmap(1)
数据结构(1)
nat(1)
key(1)
map(1)
max(1)
root(1)
动态规划(1)
搜索(1)
搜索文章
搜索
搜索
关闭
外卖配送的路径规划 Krains 2021-04-09 BFS动态规划
编程算法
node.js
自己有份商品购买清单,附近的商店有这些商品,外卖配送员会帮忙配齐商品并将它送到我这里,要求在商品配齐的前题下,外卖小哥走的路线最短。
Krains
2021-04-14
1.3K
0
策略模式 Krains 2020-12-12
map
在设计模板时审批人一般是固定的,但是也可设计成一种审批类型,比如审批人设置为申请人的leader,或者申请所属项目的维护人员,这时候我们需要根据不同的审批类型设置不同的审批人。
Krains
2021-04-02
245
0
责任链模式 Krains 2020-12-23
android
模式定义:使多个对象都有机会处理请求,从而避免了请求者的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。
Krains
2021-04-02
170
0
字典树 Krains 2020-09-01
编程算法
数据结构
当然还有其他的数据结构,如哈希表,使我们能够在字符串数据集中搜索单词。为什么我们还需要 Trie 树呢?尽管哈希表可以在 O(1) 时间内寻找键值,却无法高效的完成以下操作: 找到具有同一前缀的全部键值。
Krains
2020-09-10
378
0
410. 分割数组的最大值 Krains 2020-08-29 20:21:39 动态规划二分查找
编程算法
对答案进行二分,得到mid,如果mid可以将数组切割成m组,并且每组之和小于mid,由于我们要找的是满足要求的最小值,所以可以排除区间(mid, right],去[left, mid]找,如果不满足,那么区间[left, mid]中任一数必然也不满足条件,应到[mid+1, right]找。
Krains
2020-09-10
389
0
96. 不同的二叉搜索树 II Krains 2020-09-03 树
编程算法
但是如果按照上述递归函数的方法写,每次递归只能返回一颗树,我们需要的是多颗树,我们可以将不同的根结点装入List然后返回,实际上,上述代码可以改写成
Krains
2020-09-10
290
0
CAS Krains 2020-08-25
数据分析
编程算法
其中的关键是 compareAndSet,它的简称就是 CAS (也有 Compare And Swap 的说法),该方法是原子的。
Krains
2020-09-10
316
0
Java中的线程 Krains 2020-08-24
java
编程算法
nat
NAT 网关
Java线程之间的通信由Java内存模型(简称JMM)控制,从抽象的角度来说,JMM定义了线程和主内存之间的抽象关系。
Krains
2020-09-10
260
0
ReentrantLock可重入锁 Krains 2020-08-27
node.js
数据分析
javascript
编程算法
与 synchronized 一样,都支持可重入,但相对于 synchronized 它还具备如下特点
Krains
2020-09-10
513
0
happens-before Krains 2020-08-26
编程算法
happens-before 规定了对共享变量的写操作对其它线程的读操作可见,它是可见性与有序性的一套规则总结,抛 开以下 happens-before 规则,JMM 并不能保证一个线程对共享变量的写,对于其它线程对该共享变量的读可见
Krains
2020-09-10
326
0
synchronized关键字 Krains 2020-08-25
数据分析
编程算法
synchronized实际是用对象锁保证了临界区内代码的原子性(临界区就是多个线程对共享资源读写操作的代码块),临界区内的代码对外是不可分割的,不会因线程切换所打断。
Krains
2020-09-10
311
0
volatile关键字 Krains 2020-08-26
编程算法
缓存
面向对象编程
jvm
main 线程对 run 变量的修改对于 t 线程不可见,导致了 t 线程无法停止
Krains
2020-09-10
357
0
53. 最大子序和 Krains 2020-08-20 10:46:24 动态规划前缀和
编程算法
看到子数组的题目,就应该想到前缀和,为了最大化子数组的和,假设我们有前缀和s,为了让子数组和最大,我们应该找出[i, j],使得s[j+1]-s[i]的差值最大:
Krains
2020-08-22
299
0
134. 加油站 Krains 2020-08-20 14:03:21 前缀和贪心
编程算法
对象存储
当然也需要借助贪心的思想,如果总加油量和耗油量大于等于0那么总可以环绕一周,我们用diff[i]=gas[i]-cost[i]得到一个数组,我们找到是该数组的最大子数组和的开始元素索引k,从k出发总能环绕一周。
Krains
2020-08-22
232
0
LinkedList源码分析
java
编程算法
底层数据结构的不同:ArrayList底层是数组实现的,LinkedList是双向链表实现的,这延伸到数组和链表的区别
Krains
2020-08-19
286
0
HashMap源码分析
编程算法
hashmap
http
负载因子,当size大于threshold时进行扩容,threshold=capacity * loadFactor,capacity是当前数组长度,若当前桶大小为16,16*0.75=12,那么当哈希表中的存储的键值对数达到扩容阈值12时扩容,扩容为原来的2倍
Krains
2020-08-19
273
0
Lambda表达式
serverless
java
编程算法
ide
Java中一切皆对象,因此在Java中函数或者方法无法独立存在,它们不是一个对象,要想像JavaScript进行函数式编程,Java8提出Lambda表达式。
Krains
2020-08-19
373
0
抽象类与接口
面向对象编程
如果把一个方法定义为abstract,表示这是一个抽象方法,本身没有实现任何方法语句,因为这个抽象方法本身是无法执行的,所以其所在的类无法被实例化,必须要在类上也声明为abstract。
Krains
2020-08-19
440
0
ArrayList源码分析
编程算法
源码中的重要属性 DEFAULT_CAPACITY:默认初始数组大小,默认值是10,无参构造器初始化是空数组,在第一次add()操作后扩容成10 elementData:真正存放数据的数组 size:当前数组中真正存放的元素个数 构造器 提供了三种构造器,分别是无参、指定大小、指定初始数据的构造器 // 无参构造器,初始化为一个空数组,在第一次add操作时将数组扩容为默认初始数组大小10 public ArrayList() { this.elementData = DEFAULT
Krains
2020-08-19
179
0
128. 最长连续序列
编程算法
最主要的思路是将所有数存入set集合,然后再遍历数组,如果一个数不是当前连续序列的第一个,则不计数,当它是序列中第一个数才统计其所在连续序列的长度。
Krains
2020-08-19
321
0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档