Leetcode刷題中關於java的一些小問題
1.java 中一些經典資料結構的寫法:
Java Stack 類
棧是Vector的一個子類,它實現了一個標準的後進先出的棧。
EG:
import java.util.*;
Stack<Integer> st = new Stack<Integer>();
佇列:
Queue<String> queue = new LinkedList<String>();
2.將String和int型
*int轉String:String.valueOf(int);
*String轉int:
parseInt() 方法用於將字串引數作為有符號的十進位制整數進行解析。
EG:
int x =Integer.parseInt("9");
3.對字串做處理時善用字串內建函式及正規表示式
EG:
String.trim() String.split()
String與list結合:String.join(list);
*當分隔符是句號時("."),需要轉義:"\\*"
4.List翻轉:Collections.reverse();
翻轉陣列的話可以先轉為Aarray再用上函式(Arrays.asList())
5. int的範圍是-2147483648~2147483647所以當對數字處理相關的題目時,取絕對值時應先轉成long型
EG:
且應寫成:
long a=aa
p=Math.abs(a);
long b=bb
q=Math.abs(b);
寫成如下,會出錯:
long p=Math.abs(a);
long q=Math.abs(b);
6.有時可以將問題抽象成一個特別的排序問題,然後通過重寫sort方法的compartor來實現(leetcode179)
7.字串轉char型陣列
char[] s = word.toCharArray();
8.陣列擷取:
將陣列a的前5個複製到b,將a1的後4個複製到b,組合成新陣列b:
-------------------------------------------------------------------------------------------------------------------
int[] a = {2,2,2,2,2,0,0,0,0};
int[] a1 = {0,0,0,0,0,1,1,1,1};
int[] b=new int[9];
//引數:陣列源,拷貝的起始下標,目標陣列,填寫的起始下標,拷貝的長度)
System.arraycopy(a, 0, b, 0, 5);
System.arraycopy(a1, 5, b, 5, 4);
for(int i=0;i<b.length;i++){
System.out.print(b[i]);
}
-------------------------------------------------------------------------------------------------------------------
輸出:222221111
9.treeset的使用
treeset是基於紅黑樹構建的,可利用其特性進行快速搜尋(220. Contains Duplicate III)
public SortedSet<E> subSet(E fromElement,E toElement)
-
fromElement-- 這是返回集合的低端點(包括)。
-
toElement-- 這是返回集合的高點(不包括)。
10.遇到數字過大問題是把int都轉成long
11.Character.isDigit() 判斷字元是否為數字
12.遍歷棧:
for (int i : stack) {
res += i;
}
其中 stack為所定義的棧
相關文章
- 關於Redis的一些小問題Redis
- leetcode刷題(一)LeetCode
- 關於css佈局、居中的問題以及一些小技巧CSS
- 關於Java中分層中遇到的一些問題Java
- LeetCode 刷題指南(一):為什麼要刷題LeetCode
- 小程式專案中的一些小問題
- vue工作中遇到的一些小問題Vue
- 一些小問題彙總
- vscode刷leetcode無法登入的問題VSCodeLeetCode
- 關於leetdcode刷題技巧
- 用 Rust 刷 leetcode 第一題RustLeetCode
- Java中關於二分查詢的問題Java
- LeetCode 刷題—樹LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode刷題整理LeetCode
- Elasticsearch中關於transform的一個問題分析ElasticsearchORM
- LeetCode刷題:設計問題篇(C++實現,持續更新中...)LeetCodeC++
- LeetCode刷題之第701題LeetCode
- leetcode每日一題刷題記錄(10.26-10.30)LeetCode每日一題
- LeetCode刷題記錄LeetCode
- leetcode刷題筆記LeetCode筆記
- 如何使用leetcode刷題LeetCode
- Leetcode刷題分類LeetCode
- LeetCode 刷題筆記LeetCode筆記
- Leetcode刷題準備LeetCode
- LeetCode刷題—陣列LeetCode陣列
- 教你如何解決PostgreSQL Array使用中的一些小問題SQL
- 關於工作中遇到的問題
- 關於cuda中的函式問題函式
- 關於this指向的問題
- Leetcode刷題——求眾數LeetCode
- leetcode刷題記錄 661~LeetCode
- leetcode刷題筆記605LeetCode筆記
- Leetcode刷題系列彙總LeetCode
- LeetCode 刷題記錄(16、17、18)—Java語言LeetCodeJava
- 關於python中填充缺失值的問題Python
- 關於setInterval和setTImeout中的this指向問題
- 關於 mysql 中的 rand () 查詢問題MySql