Leetcode里的常用函数

本文汇总了Java编程中常用的代码片段及技巧,包括数组操作、字符串处理、集合管理和映射使用等,适合各阶段开发者参考学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Math.max(a, b)
Arrays.sort()
s.compareTo("…")
s = s.replace(“IV”,“a”)
sb.insert()
map.getOrDefault()
Map<a, b> map = new LinkedHashMap<>();

for(Map.Entry<a, b> entry : map.entrySet()){
            if(entry.getValue()) return entry.getKey();
}

Math.abs()
num >>>= 1
List<int[]> arrayList = new ArrayList<>()
arrayList.toArray(new int[0][])
s.trim()
Deque<*> deque = new LinkedList<>()
deque.isEmpty()
deque.peekLast()
deque.removeLast()
deque.addLast()
deque.peekFirst()
deque.removeFirst()
deque.pollLast()
deque.offerLast(value)
queue.offer(value)
deque.pollFirst()
在这里插入图片描述

Arrays.fill()
Integer.MAX_VALUE
Integer.MIN_VALUE
set.remove()

Map<Character, String> phoneMap = new HashMap<Character, String>() {{
            put('2', "abc");
            put('3', "def");
            put('4', "ghi");
            put('5', "jkl");
            put('6', "mno");
            put('7', "pqrs");
            put('8', "tuv");
            put('9', "wxyz");
}};

arrayList.remove()
arrayList.add()
arrayList.size()
arrayList.set()
arrayList.get()

Map<String,List<String>> map=new HashMap<>();
map.put(key,list);
return new ArrayList<List<String>>(map.values());
int[][] intervals = {{1,3},{2,6},{8,10},{15,18}}
Arrays.sort(intervals, new Comparator<int[]>(){
    public int compare(int[] interval1, int[] interval2){
        return interval1[0]-interval2[0];
    }
});
List<int[]> merged=new ArrayList<>();
。。。
return merged.toArray(new int[merged.size()][]);
Iterator iter = map.entrySet().iterator(); 
while (iter.hasNext()) { 
    Map.Entry entry = (Map.Entry) iter.next(); 
    Character key = (Character) entry.getKey(); 
    Integer val = (Integer) entry.getValue(); 
    ......
} 
Set<String> set = new HashSet<>();
......
return new ArrayList<>(set);
List<Integer> list=new ArrayList();
list.addAll(list0);
return list.stream().mapToInt(Integer::valueOf).toArray();

数组、StringBuilder、map等等如何初始化也要记住。

int[][] people={{7,0},{4,4},{7,1},{5,0},{6,1},{5,2}};
LinkedList<int[]> list = new LinkedList<>();
for (int[] i : people) {
    list.add(i[1], i);
}
return list.toArray(new int[list.size()][2]);

map.size()

Map<Character, Integer> freq=new HashMap<>();
Set<Map.Entry<Character, Integer>> entrySet=freq.entrySet();
for(Map.Entry<Character, Integer> entry : entrySet){
    int value=entry.getValue();
    nextValid.add(1);
    rest.add(value);
}
LinkedList<String> myQueue = new LinkedList<String>();  
    myQueue.add("A");  
    myQueue.add("B");  
    myQueue.add("C");  
    myQueue.add("D");  
    List<String> myList = new ArrayList<String>(myQueue);
public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) {
            return false;
        }
        char[] str1 = s.toCharArray();
        char[] str2 = t.toCharArray();
        Arrays.sort(str1);
        Arrays.sort(str2);
        return Arrays.equals(str1, str2);
}
public boolean wordBreak(String s, List<String> wordDict) {
        Set<String> wordDictSet = new HashSet(wordDict);
        ...
    }
以下是一些常用函数和数据结构在LeetCode刷题中的应用示例: 1. 栈(Stack):栈是一种后进先出(LIFO)的数据结构,常用于解决与括号匹配、逆波兰表达式等问题。 ```java import java.util.Stack; Stack<Integer> stack = new Stack<>(); stack.push(1); // 入栈 stack.push(2); stack.push(3); int top = stack.peek(); // 获取栈顶元素,但删除 int pop = stack.pop(); // 弹出栈顶元素 boolean isEmpty = stack.isEmpty(); // 判断栈是否为空 ``` 2. 队列(Queue):队列是一种先进先出(FIFO)的数据结构,常用于解决与广度优先搜索(BFS)相关的问题。 ```java import java.util.Queue; import java.util.LinkedList; Queue<Integer> queue = new LinkedList<>(); queue.offer(1); // 入队 queue.offer(2); queue.offer(3); int front = queue.peek(); // 获取队首元素,但删除 int poll = queue.poll(); // 弹出队首元素 boolean isEmpty = queue.isEmpty(); // 判断队列是否为空 ``` 3. 堆(Heap):堆是一种特殊的树形数据结构,常用于解决与优先队列相关的问题。 ```java import java.util.PriorityQueue; PriorityQueue<Integer> minHeap = new PriorityQueue<>(); // 小顶堆 minHeap.offer(3); // 入堆 minHeap.offer(1); minHeap.offer(2); int min = minHeap.peek(); // 获取堆顶元素,但删除 int pollMin = minHeap.poll(); // 弹出堆顶元素 boolean isEmpty = minHeap.isEmpty(); // 判断堆是否为空 ``` 4. 位运算(Bit Manipulation):位运算是对二进制数进行操作的技术,常用于解决与位操作相关的问题,如位与、位或、位异或等。 ```java int a = 5; // 二进制表示为 101 int b = 3; // 二进制表示为 011 int andResult = a & b; // 位与运算,结果为 001,即 1 int orResult = a | b; // 位或运算,结果为 111,即 7 int xorResult = a ^ b; // 位异或运算,结果为 110,即 6 int complement = ~a; // 取反运算,结果为 11111111111111111111111111111010,即 -6 int leftShift = a << 1; // 左移运算,结果为 1010,即 10 int rightShift = a >> 1; // 右移运算,结果为 10,即 2 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值