- 博客(19)
- 收藏
- 关注
原创 Leetcode015 三数之和 题解记录
题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]排序+双指针解法:class Solution { public List<List<Integer>> threeSum(int[] nums)
2021-08-29 12:41:14
172
转载 什么场景下更适宜使用LinkedList,而不用ArrayList
LinkedeList和ArrayList都实现了List接口,但是它们的工作原理却不一样。它们之间最主要的区别在于ArrayList是可改变大小的数组,而LinkedList是双向链接串列(doubly LinkedList)。ArrayList更受欢迎,很多场景下ArrayList比LinkedList更为适用。这篇文章中我们将会看看LinkedeList和ArrayList的不同,而且我们试图来看看什么场景下更适宜使用LinkedList,而不用ArrayList。LinkedList和ArrayL
2021-08-29 10:19:56
844
原创 Leetcode078 子集 题解记录
题目:给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]回溯递归法:class Solution { public List<List<Integer>> subsets(int[] nums) { List<L
2021-08-28 12:00:18
156
原创 Leetcode064 最小路径和 题解记录
题目:给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。动态规划解法:class Solution { public int minPathSum(int[][] grid) { int m = grid.length;
2021-08-26 09:41:21
141
转载 MySql报错- 解决MySQL非聚合列未包含在GROUP BY子句报错问题
测试环境win10MySQL 5.7问题描述:执行类似以下mysql查询,SELECT id, name, count(*) AS cnt FROM case_table GROUP BY name报错,如下:服务器内部错误 (1055, “Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘case_table.id’ which is not functiona
2021-08-09 22:48:26
750
原创 Leetcode003 无重复字符的最长子串 题解记录
题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3 “abc”解法:class Solution { public int lengthOfLongestSubstring(String s) { int n = s.length(), ans = 0; Map<Character, Integer> map = new HashMap<>();
2021-06-03 01:03:35
115
原创 使用split正则时需要注意的特殊符号
使用split正则公式需要注意的特殊符号".$|()[{^?*+\"通过查看split源码可知,这些字符是RegEx’s meta characters,为特殊字符。如果只希望regex将其看作普通字符,可加"\\"表示。可参考以下代码:String[] inputF = null;if(delim = "." && delim = "|") { inputF = input.split("\\"+delim, -1);}报错Illegal/unsupport
2021-06-02 01:01:29
1202
原创 代码覆盖率 ——语句覆盖 Statement Coverage、分支覆盖 Branch Coverage、 路径覆盖 Path Coverage的区别
我们以下面代码为例:public static boolean Method(boolean a, boolean b) { int x = 2; int y = -4; if(a) x = y; else x = -2*x; if(b)
2021-03-25 00:23:38
11807
1
原创 在IntelliJ IDEA中查看代码覆盖率
在IDEA中使用Junit测试时,时常需要考虑代码覆盖率,以下是查看代码覆盖率的方法:在test class右键选择“more run/debug" --> “Run ‘Test’ with Coverage”使用时发现会出现没有Branch Coverage结果的情况,经测试,可在Run-Edit Configurations里面修改:”Run“ --> “Edit Configurations” --> “Code Coverage” --> “Modify” --
2021-03-24 23:44:23
11629
原创 Android Studio报错 “java.lang.IllegalStateException: Room cannot verify the data integrity” 解决方法
最近在Android Studio遇到以下报错:Caused by: java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number.解决方法如下:在模拟器中清理
2021-03-24 23:02:15
4270
2
原创 GIT add commit等常用命令的易混淆写法
git add -A: 提交所有变化git add -u: 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)git add . : 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件git commit -m “message”: 常见写法,-m参数表示可以直接输入后面的“message”git commit -a -m “message”: -a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交..
2021-03-24 23:00:20
167
原创 Leetcode002 两数相加 题解记录
题目:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.解法:/** * Definition for singly-linked list. * public class ListN
2021-03-15 23:51:18
292
2
原创 List常用实现类的对比
Array与List的区别数组:一旦初始化,长度不能改变,不能扩容List: 相当于动态的数组,不需考虑长度List的三种实现类:Arraylist, LinkedList, Vector相同点:都实现了List接口,存储有序的,可重复的数据不同点:ArrayList:作为List接口主要实现类。线程不安全,效率高;底层使用Object[]数组存储;LinkedList:对于频繁插入和删除操作,使用此类效率比ArrayList高;底层使用双向链表存储;Vector:List接口的古老实现类
2021-03-09 23:41:13
307
原创 Leetcode001 两数之和 题解记录
题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。解法一:public class TwoNumberSum1 { publi
2021-03-06 22:56:14
158
原创 JAVA 打印数组的方式
场景在做 Leetcode时,自己在本地写了main方法来测试,发现run的结果为地址值,代码及结果如下:public class Main { public static void main(String[] args) { TwoNumberSum1 sum = new TwoNumberSum1(); int[] nums = {3,2,4}; int target = 6; System.out.println(sum.tw
2021-03-06 16:21:35
269
转载 访问者模式(Visitor Pattern)的使用场景
访问者模式介绍最复杂的设计模式,并且使用频率不高,《设计模式》的作者评价为:大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了。访问者模式是一种将数据操作和数据结构分离的设计模式。(觉得太抽象,可以看下面的例子)。访问者模式的使用场景对象结构比较稳定,但经常需要在此对象结构上定义新的操作。需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免这些操作“污染”这些对象的类,也不希望在增加新操作时修改这些类。访问者模式的UML类图角色介绍Visit
2021-02-28 23:31:07
767
转载 策略模式(Strategy Pattern)的使用场景
策略模式之使用场景假设现在要设计一个贩卖各类书籍的电子商务网站的购物车系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复杂。比如,本网站可能对所有的高级会员提供每本20%的促销折扣;对中级会员提供每本10%的促销折扣;对初级会员没有折扣。根据描述,折扣是根据以下的几个算法中的一个进行的:算法一:对初级会员没有折扣。算法二:对中级会员提供10%的促销折扣。算法三:对高级会员提供20%的促销折扣。接口:public interface MemberStrategy {/
2021-02-27 22:22:18
431
原创 几种常用的设计模式 (Design Pattern)
文章目录设计模式(Design Pattern)一、设计模式的分类1. 基础型模式 (Fundamental Pattern)2. 创建型模式 (Creational Pattern)3. 结构型模式 (Structural Pattern)4. 行为型模式 (Behavioral Pattern)5. 并发型模式 (Concurrency Pattern)二、设计模式详解1.工厂方法模式(Factory Method)应用场景缺点2.策略模式(Strategy Pattern)应用场景缺点3.访问者模式(
2021-02-27 18:16:19
2958
1
原创 UML 类图(Class Diagram)中关系的表达
UML 类图(Class Diagram)中关系的表达类之间的关系(Relationship)依赖关系(Dependency)类A要完成某个功能必须引用类B,则A与B存在依赖关系。类B的变化将影响类A。在程序中一般为using引用。场景:关联关系(Association)1. 单向关联A1->A2:表示A1认识A2,A1知道A2的存在,A1可以调用A2中的方法和属性场景: 订单和商品,订单中包括商品,但商品并不了解订单的存在。2. 双向关联B1- B2:表示B1认识B2,B1
2021-02-25 23:32:49
572
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅