- 博客(5)
- 收藏
- 关注
原创 最长有效括号
最长有效括号给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。问题思路所用方法:动态规划。状态分析:将以该字符为结尾的最长有效括号子串的长度作为这个字符位置的状态。具体解决:如果这个字符为’(‘则一定为0,因为’(‘不能作为有效括号字串的末尾。如果这个字符为’)‘,那么就要看它的前一个字符,如果是’)‘,因为已经知道了前一个字符的状态(即对应的有效长度),那么减去这个长度后观察前面的是否能与当前的组成一对,如果是’)‘,那么不能组成,则当前字符状态为0
2022-05-31 19:39:14
69
原创 括号生成问题
括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。解题思路:使用递归调用方法,当遇到错误时放弃该解(错误为右括号数量多于左括号数量),当遇到正确解时将结果存入数组中。以下为代码:package OneHundred;import java.util.ArrayList;import java.util.List;import java.util.Stack;public class Que13 { List<String&g
2022-05-31 10:54:38
86
原创 三数之和:双指针
三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。对数组进行排序,更容易达到不重复的要求,且排序过程的时间复杂度相对该问题解决思路来说不会造成时间复杂度的增加。排序过后:固定a,让b从a+1的位置开始往右边,让c从最后一个位置开始往左边。这样做的原因是:如果此时整体加起来结果大于0,就代表需要减小c,直到减小到等于0的状态,或者再减小就会小于0的状态。如果此时整体加起来结
2022-05-30 16:49:06
175
原创 ArrayList和LinkedList
ArrayList和LinkedList共同点两者都实现了List接口:有序集合(也称为序列 )。 该界面的用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。也就是ArrayList和LinkedList都具有List的功能。不同点ArrayList的底层是数组,是基于索引的数据接口。使用索引在数组中搜索和读取数据是很快的。 Array 获取数据的时间复杂度是 O(1), 但是要删除数据却是开销很大的,因为这需要重排数组中的所有数据
2022-05-27 19:56:56
128
原创 Java面向对象有哪些特征,如何应用
Java面向对象有哪些特征,如何应用三大特征:封装,继承,多态。封装封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。public class People { private String name; public People(String name) { this.name = name; } public String getName() {
2022-05-27 16:15:48
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人