中午12:40开始刷题
第一题:力扣20——有效的括号
1、哈希表:需要调用库:java.util.Map
链表长度大于8时自动转化为红黑树
构造方法:HashMap<Key,value> map1=new HashMap<Key, Value>();
常用方法:
添加元素:map1.put(key,value);
clear():从此映射中移除所有映射关系。
containsKey(Object key):如果此映射包含对于指定键的映射关系,则返回 true。
containsValue(Object value):如果此映射将一个或多个键映射到指定值,则返回 true。
entrySet():返回此映射所包含的映射关系的 Set 视图。
get(Object key):返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
remove(Object key):从此映射中移除指定键的映射关系(如果存在)。
size():返回此映射中的键-值映射关系数。
2、栈结构(stack)的使用:
类型:stack栈,先进先出(基本废弃,用deque替代);queue队列,先进后出;deque双向队列,都可以;
调用:import java.util.*;
构造方法:Deque<Character> stack = new LinkedList<Character>();//在java中,LinkedList类实现了Deque和queue类型;
常用方法:
pop()从双端队列表示的堆栈 中弹出一个元素。
push()将一个元素推入双端队列表示的堆栈,即队列的头部。成功返回true,如果没有可用空间,抛出IllegalStateException。
removeLast()获取并移除移除双端队列最后一个元素。
size()返回双端队列元素数。
peek()获取但是不移除队列头部元素,队列为空返回null。
isEmpty()判断队列是否为空,为空返回true。
第二题:力扣21合并两个有序链表
递归函数的调用准则:
递归函数先不断调用自身,直到遇到终止条件后进行回溯,最终返回答案。
递归函数必须要有终止条件,否则会出错;
第三题:力扣53最大子序和
动态规划与贪心算法
17.01结束刷题