语言基础
public class TreeNode{ int val; TreeNode left; TreeNode right; //构造函数 TreeNode(int val){ this.val=val; this.left=null; this.right=null; } }
//新建二叉树节点 TreeNode node1=new TreeNode(2); TreeNode node2=new TreeNode(4); TreeNode node3=new TreeNode(6); //修改节点的值 node1.val=10; //连接节点 node1.left=node2; node1.right=node3;
class ListNode{ int val; ListNode next; ListNode(int val){ this.val=x; this.next=null; } }
//新建单链表节点 ListNode node1=new ListNode(1); ListNode node2=new ListNode(3); ListNode node3=new ListNode(5); //修改节点的值 node1.val=9; //连接节点 node2.next=node3; node1.next=node2;
int n=7,m=8; vector<int>nums; vector<int>nums(n); vector<int>nums{1,3,5}; //初始化一个大小为n的数组,值全为2 vector<int> nums(n,2); //初始化一个大小为m*n的bool型数组,初始值全为true vector<vector<bool>> dp(m,vector<bool>(n,true));
//判断数组是否为空 bool empty() //返回数组的元素个数 size_type size(); //返回数组最后一个元素的引用 reference back(); //在数组尾部插入一个元素val void push_back(const value_type & val); //删除数组尾部的那个元素 void pop_back(); //数组尾部插入和删除元素 nums.push_back(20); cout<<nums.size(); nums.pop_back(20); cout<<nums.size();
string s="abc"; size_t size(); bool empty(); void push_back(char c); void pop_back(); //返回从索引pos开始,长度为len的子字符串 string substr(size_t pos,size_t len);
//初始化一个key为int,value为int的哈希表 unordered_map<int,int> mapping; //初始化一个key为string,value为int数组的哈希表 unordered_map<string,vector<int>> mapping ;
vector<int> nums{1,1,3,4,5,3,6}; unordered_map<int,int> counter; for(int num:nuns){ counter[num]++; } for(auto& it:counter){ int key=it.first; int val=it.second; count<<key<<":"<<val<<endl; }
unordered_set<string> visited; //返回哈希表的键值对个数 size_type size(); //向集合插入一个元素key pair<iterator,bool> insert(const key_type& key);
//初始化一个存储int的对列 queue<int> q; //初始化一个存储string的对列 queue<string> q; //返回队列是否为空 bool empty(); //返回队列中元素的个数 size_type size(); //将元素加入队尾 void push(const value_type& val); //返回队头元素的引用 value_type& front(); //删除队头元素 void pop();
//初始化一个存储int的堆栈 stack<int> stk; //初始化一个存储string的堆栈 stack<string> stk; //返回堆栈是否为空 bool empty(); //返回堆栈中元素的个数 size_type size(); //在栈顶添加元素 void push(const value_type& val); //返回栈顶元素的引用 vcalue_type& top(); //删除栈顶元素 void pop();
int m=5,n=10; //初始化一个大小为10的int数组,默认值为0 int[] nums=new int[n]; //初始化一个m*n的二位bool数组 boolean[][]visited=new boolean[m][n];
if(nums.length==0){ return 0; } for(int i=0;i<nums.length;i++){ //访问nums[i] }
String s1="hello world"; //获取s1[2]中的字符 char c=s1.charAt(2); char[] chars=s1.toCharArray(); char[1]='a'; String s2=new String(chars); System.out.println(s2); //用equals方法判断字符串是否相同 if(s1.equals(s2)){ //s1和s2相同 }else{ //s1和s2不同 } //字符串拼接 String s3=s1+"!"; //输出hello world System.out.println(s3);
StringBuilder sb=new StringBuilder(); for(char c='a';c<'f';c++){ sb.append(c); } //append直出拼接字符,字符串,数字 sb.append('g').append("hij").append(123) String res=sb.toString(); //输出abcdefghij123 System.out.println(res);
//初始化一个存储String的动态数组 ArrayList<String> nums=new ArrayList<> //判断数组是否为空 boolean isEmpty() //返回数组中元素个数 int size(); //返回索引index的元素 E get(int index) //在数组微博添加元素e Boolean add(ElemType e)
//初始化一个存储int类型数据的双链表 LinkedList<Integer> nums=new LinkedList<>(); //初始化一个存储String类型数据的双链表 LinkedList<String> strings = new LinkedList<>(); //判断链表是否为空 boolean isEmpty() //返回链表中元素的个数 int size()
//整数映射道字符串的哈希表 HashMap<Integer, String> map = new HashMap<>(); //字符串映射到数组的哈希表 HashMap<String,int[]> map = new HashMap<>(); //判断哈希表中是否存在key boolean containsKey(Object key) //获得键key对应的值,若key不存在则返回null ValueType get(Object key) //将key和value键值对存入哈希表 ValueType put(KeyValue key,ValueType value) //如果key存在,删除key并返回对应的值 ValueType remove(Object key)
//新建存储一个String类型的哈希集合 Set<String> set=new HashSet<>(); //如果e不存在就会添加到哈希集合 boolean add(ElemType e) //判断元素o是否存在于哈希集合 boolean contains(Object o) //如果元素o存在则删除元素 boolean remove(Object o)
//新建一个存储String的对列 Queue<String> q=new LinkedList<>(); //判断队列是否为空 boolean isEmpty(); //返回队列中元素的个数 int size(); //返回队头的元素 ElemType peek(); //删除并返回队头的元素 ElemType poll(); //将元素e掺入队尾 boolean offer(ElemType e);
初始化方法: Stack<Integer> s=new Stack<>(); //判断堆栈是否为空 boolean isEmpty(); //返回堆栈中元素是的个数 int size(); //将元素压入栈顶 ElemType push(ElemType item) //返回栈顶元素 ElemType peek() //删除并返回栈顶元素 ElemType pop()