leetcode刷题java 常用函数
时间: 2024-01-12 09:04:06 浏览: 157
以下是一些常用的函数和数据结构在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
```
阅读全文