- 博客(14)
- 收藏
- 关注
原创 算法自学。
回溯思想什么时候需要回溯当问题需要 “回头”,以此来查找出所有的解的时候,使用回溯算法。即满足结束条件或者发现不是正确路径的时候(走不通),要撤销选择,回退到上一个状态,继续尝试,直到找出所有解为止步骤①画出递归树,找到状态变量(回溯函数的参数),这一步非常重要※②根据题意,确立结束条件③找准选择列表(与函数参数相关),与第一步紧密关联※④判断是否需要剪枝⑤作出选择,递归调用,进入下一层⑥撤销选择例题leetcode 46 全排列leetcode 31 下一个排列
2022-03-10 13:33:28
157
翻译 线程,协程对比
协程相对线程的好处为什么Java不换成协程呢先返回到问题的本源。当我们希望引入协程,我们想解决什么问题。我想不外乎下面几点:节省资源,轻量,具体就是: 节省内存,每个线程需要分配一段栈内存,以及内核里的一些资源节省分配线程的开销(创建和销毁线程要各做一次syscall)节省大量线程切换带来的开销与NIO配合实现非阻塞的编程,提高系统的吞吐使用起来更加舒服顺畅(async+await,跑起来是异步的,但写起来感觉上是同步的)线程+其他技术综合也能实现协程达到的效果节省资源:比如IM
2021-09-16 08:12:21
226
原创 Session与Cookie的区别
Session与Cookie的区别session[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传Session会给每个浏览器创建一个session,在各自的session进行工作、服务器如何实现一个session为一个浏览器服务的?浏览器向服务器发送请求,服务器生成一个session,并通过http响应头将sessionId写入cookie,此后客户端带着cookie去请求服务器对比sessionIdcookie[外链图片转存失败,源站可能有防盗链机制,建
2021-08-14 23:29:48
192
翻译 Goroutines 与线程 ,并发原理,GPM模型,调度过程
为什么有线程了还会有goroutinegoroutines相对于线程的优势1. 动态栈修改固定的大小可以提升空间的利用率,允许创建更多的线程。一个OS线程都有一个固定大小的内存块(一般会是2MB)来做栈,这个栈会用来存储当前正在被调用或挂起(指在调用其它函数时)的函数的内部变量。2MB的栈对于一个小小的goroutine来说是很大的内存浪费,对于很大的goroutine来说又不够。允许更深的递归调用。固定大小的栈对于更复杂或者更深层次的递归函数调用来说显然是不够的。不过这两者是.
2021-04-22 20:02:15
745
3
原创 面试
java底层synchronized 和Lock区别及使用https://blog.csdn.net/hefenglian/article/details/82383569JVM运行时数据区https://www.jianshu.com/p/623e98069dec数据库什么是索引?Mysql目前主要的几种索引类型https://blog.csdn.net/liutong123987/article/details/79384395MySQL主键索引(聚簇索引)与非主键索引(
2021-03-19 16:38:36
83
原创 剑指Offer-05 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.” 输出:“We%20are%20happy.”题解:使用到StringBuilder这个数据结构,下面简单介绍一下:StringBuilderStringBuffer 类是可变字符串类,创建 StringBuffer 类的对象后可以随意修改字符串的内容。每个 StringBuffer 类的对象都能够存储指定容量的字符串,如果字符串的长度超过了 StringBuffer 类对象
2021-01-29 09:35:21
79
原创 剑指 Offer 04. 二维数组中的查找
在一个 n * m的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16,22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target = 5,返回t
2021-01-25 17:35:46
52
原创 题解-剑指Offer 03. 数组中重复的数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入: [2, 3, 1, 0, 2, 5, 3]输出:2 或 3题解1利用hashset来判断是否重复class Solution { public int findRepeatNumber(int[] nums) { HashSet<Inte
2021-01-25 16:14:12
56
原创 解决int类型溢出问题
解决溢出问题有两个思路,第一个思路是通过字符串转换加try catch的方式来解决,第二个思路就是通过数学计算来解决。try catch try { int number = Integer.parseInt(str); System.out.println(number); }catch (Exception e) { e.printStackTrace(); }
2020-09-25 16:04:14
2989
原创 python与java使用grpc以及java作为客户端调用python服务的小demo
python使用grpc使用的工具:python3.8 pycharm2020.2安装环境: python -m pip install grpcio python -m pip install grpcio-tools python -m pip install protobuf建立一个python项目,创建以下文件写下helloworld.proto,进行编译helloworld.protosyntax = "proto3";option java_
2020-08-11 11:03:52
691
1
转载 mybatis中#与$的区别
mybatis中#与$的区别MyBatis中使用parameterType向SQL语句传参,parameterType支持的类型可以是基本类型int,String,HashMap和java自定义类型。在SQL中引用这些参数的时候,可以使用两种方式:#{parameterName}${parameterName}首先,我们说一下这两种引用参数时的区别,使用#{parameterName}引用参数的时候,Mybatis会把这个参数认为是一个字符串,并自动加上’’,例如传入参数是“Smith”,那么在下
2020-08-04 16:40:54
150
原创 访问错误:An error happened during template parsing (template: “class path resource [templates/main.html]
访问错误:An error happened during template parsing (template: "class path resource [templates/list.html]在网上查询资料会有以下几种解决方法:1.配置文件问题.(重新看了一遍确定没有问题,但是还是错误)spring.thymeleaf.prefix=classpath:/templates/spr...
2020-03-30 13:05:25
2665
2
原创 使用PyCharm进行Python项目的单步执行调试
1.点击开始调试的那行代码的左侧,如下:2.点击调试按钮3.点击单步执行4.再次点击单步执行5.继续点击单步执行,直到执行到最后一行变量区和代码后面的内容均清空,调试结束...
2020-01-18 16:45:57
18471
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人