自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Spring常用注解总结

@SpringBootApplication这个注解是 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认在主类加上。@Autowired我们一般使用 @Autowired 注解让 Spring 容器帮我们自动装配 bean。要想把类标识成可用于 @Autowired 注解自动装配的 bean 的类,可以采用以下注解实现:@Component :通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用@Component 注解标注。

2020-10-29 15:05:15 750 1

原创 1095. 山脉数组中查找目标值

一个数组,前半段升序后半段降序,查找某个值在数组中的最小下标:第一步应当找到最大值,如何找到最大值—二分查找,用到二分查找的一些例题,这些例题只是在区间的判断条件上不同而已。...

2020-10-29 09:11:00 168

原创 72. 编辑距离

注:一旦涉及到子问题,有两种解决思路:自顶向下的递归自底向上的动态规划class Solution { public int minDistance(String word1, String word2) { //方法一:递归 int len1 = word1.length(), len2 = word2.length(); //如果word1.length() == 0, 我们每次都进行插入操作即可 //如果word2

2020-10-26 12:00:50 82 1

原创 回溯算法例题

78.子集90.子集ii46.全排列47.全排列ii39.组合总和40.组合总和ii

2020-10-24 17:54:20 188

原创 int和String类型的相互转化

int 转 String:int a = Integer.parseInt(str);int b = Integer.valueOf(str).intValue();String 转 int:String.valueOf(int i)Integer.toString(int i)i+""; //i 为 int类型三种方法效率排序:Integer.toString(int i) > String.valueOf(int i) > i+"";...

2020-10-21 09:17:26 360

原创 449.序列化与反序列化二叉树

public class Codec { //序列化为后序遍历序列,同样也是有后序遍历序列反序列化为二叉搜索树 public StringBuilder postorder (TreeNode root, StringBuilder sb) { if(root == null) return sb; postorder(root.left, sb); postorder(root.right, sb); sb.append(.

2020-10-20 09:37:01 80

转载 15.三数之和

class Solution { public List<List<Integer>> threeSum(int[] nums) { //排序+双指针 List<List<Integer>> res = new ArrayList<List<Integer>>(); Arrays.sort(nums); for(int k = 0; k < nums.len.

2020-10-19 17:49:25 70

转载 1143. 最长公共子序列

审题最长公共子序列(Longest Common Subsequence,简称 LCS)是一道非常经典的面试题目,因为它的解法是典型的二维动态规划,大部分比较困难的字符串问题都和这个问题一个套路,比如说编辑距离。而且,这个算法稍加改造就可以用于解决其他问题,所以说LCS算法是值得掌握的。所谓子序列,就是要保留原始顺序,但可以是不连续的。审题之后你可能会有疑问,这个问题为啥就是动态规划来解决呢?因为子序列类型的问题,穷举出所有可能的结果都不容易,而动态规划算法做的就是穷举 + 剪枝,它俩天生一对儿。所以.

2020-10-19 16:49:03 75

原创 string和stringbuffer和stringbuilder的区别

2020-10-16 09:44:53 119

转载 为什么要重写hashCode()方法和equals()方法以及如何进行重写?

首先,为什么要重写equals()方法。我们在定义类时,我们经常会希望两个不同对象的某些属性值相同时就认为他们相同,所以我们要重写equals()方法,按照原则,我们重写了equals()方法,也要重写hashCode()方法。Java中的超类Object类中定义的equals()方法是用来比较两个引用所指向的对象的内存地址是否一致。a. 在java应用程序运行时,无论何时多次调用同一个对象时的hashCode()方法,这个对象的hashCode()方法的返回值必须是相同的一个int值;b. 如果两个

2020-10-15 22:38:50 186

原创 项目二回顾

管理员模块:广告管理:写了Ad类和数据库表中的Ad对应写了广告更新的BO,AdUpdateBO类。写了AdCreateVO。AdController,对广告的增删改查。建立了AdMapper对应Resource目录下的AdMapper.xml优惠卷管理:写了Coupon类和数据库表中的Coupon对应写了增加优惠劵和更新优惠劵的类:CouponCreateBO、CouponUpdateBO。写了CouponCreateVO、CouponUpdateVO。CouponControl

2020-10-12 22:20:31 166

转载 圆圈中最后剩下的数字(约瑟夫环问题)

0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2模拟链表,O(n^2))如果单纯用链表模拟的话,时间复杂度是 O(nm)O(nm) 的,可以看下题目的数据范围,肯定是不能

2020-10-08 17:32:03 459

原创 序列化二叉树

输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。方法一:BFSpublic class Codec { //把树转化为字符串(使用BFS遍历) public String serialize(TreeNode root) { //边界判断,如果为空就返回一个字符串"#" if (root == null) return "#";

2020-10-08 11:47:22 235 1

转载 数组中数字出现的次数 II

在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1以下解题思路来自剑指Offer,侵删。解题思路:如果数组中的数字除一个只出现一次之外,其他数字都出现了两次。我们可以如Solution56_1一样用异或位运算(^)解决这个问题。上述思路不能解决这里的问题,因为三个相同的数字的异或结果还是该数字。尽管我们这里不能应用异

2020-10-08 09:41:35 314

原创 把数组排成最小的数

输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: “102”示例 2:输入: [3,30,34,5,9]输出: “3033459”通过在排序时传入一个自定义的 Comparator 实现,重新定义 String 列表内的排序方法,若拼接 s1 + s2 > s2 + s1,那么显然应该把 s2 在拼接时放在前面,以此类推,将整个 String 列表排序后再拼接起来。class Solution {

2020-10-07 10:26:43 146

转载 丑数

我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。解题思路很多题解都讲解了动态规划的基本思路, 但是, 对于为什么要设置 3 个指针 p2, p3, p5 并且进行相应的 +1 操作, 并没有讲的很清楚。丑数的定义我们把只包含因子 2、3 和 5 的数称作丑数.根据题意, 一个丑数必然可以写为 A0

2020-10-05 16:31:32 110

原创 n整数中1出现的次数 / 数字 1 的个数

输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6解题思路f(n))函数的意思是1~n这n个整数的十进制表示中1出现的次数,将n拆分为两部分,最高一位的数字high和其他位的数字last,分别判断情况后将结果相加,看例子更加简单。例子如n=1234,high=1, pow=1000, last=234可以将数

2020-10-05 12:13:46 542

原创 数字序列中某一位的数字

找规律:0 占第0位1~9 共9x1 = 9个数字 占位9x1 = 9 位10~99 共9x10 = 90个数字 占位90x2 = 180 位100~999 共9x100 = 900个数字 占位900x3 = 2700 位…规律是不是很好理解啦,算法的逻辑就是:我们依次算一下占位数字,并不断地累加得到当前的总占位数,并判断和输入n的关系,总占位数小于n的话说明,第n位不在目前的范围內,继续累加;否则,说明在范围,然后找到相应数字返回。举个例子秒懂:假设输入n为14,我们想找到第14位:(1

2020-10-04 18:01:37 197

原创 n个骰子的点数

把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。题目大意:简单来说,n个骰子同时掷出,题目要我们求每个点数的概率组成的数组(以下简称点数概率数组)解题思路:根据动态规划的思想分解子问题。我们可以把n个骰子的点数分解为n-1个骰子的点数加上一个骰子的点数。根据1个骰子的点数概率数组求出2的点数概率数组,根据2的点数概率数组求出3的点数概率数

2020-10-04 12:18:24 205

原创 java中栈、队列、双端队列的初始化

栈的初始化Deque<Integer> stack = new LinkedList<Integer>();入栈:push();出栈:pop();取栈顶元素:peek();队列的初始化Deque<Integer> queue= new LinkedList<Integer>();插入队头/队尾元素:addFirst()、addLast()删除队头/队尾元素:removeFirst()、removeLast()获取队头/队尾元素:g.

2020-10-03 16:03:40 3585

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除