【LeetCode】初级算法案例+java代码(设计问题篇)

简介: 【LeetCode】初级算法案例+java代码(设计问题篇)

@TOC


# 一、打乱数组 ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2b9ee960eec34a509bc1805e9524e24d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_20,color_FFFFFF,t_70,g_se,x_16) ```java class Solution { int[] nums; // 用以打乱的数组 int[] tempArr; public Solution(int[] nums) { this.nums = nums.clone(); tempArr = nums.clone(); } public int[] reset() { return nums; } // 随机两两互换进行打乱 public int[] shuffle() { int r1 = new Random().nextInt(nums.length); int r2 = new Random().nextInt(nums.length); int temp = tempArr[r1]; tempArr[r1] = tempArr[r2]; tempArr[r2] = temp; return tempArr; } } ```
# 二、最小栈 ![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/f9b6335d660744ffa4d6c35ec415e5f6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV1NLSDA5Mjk=,size_20,color_FFFFFF,t_70,g_se,x_16) ```java class MinStack { //链表头,相当于栈顶 private ListNode head; //压栈,需要判断栈是否为空 public void push(int x) { if (empty()) { head = new ListNode(x, x, null); } else { head = new ListNode(x, Math.min(x, head.min), head); } } //出栈,相当于把链表头删除 public void pop() { if (empty()) { throw new IllegalStateException("Stack is Empty"); } head = head.next; } //栈顶的值也就是链表头的值 public int top() { if (empty()) { throw new IllegalStateException("Stack is Empty"); } return head.val; } //链表中头结点保存的是整个链表最小的值,所以返回head.min也就是 //相当于返回栈中最小的值 public int getMin() { if (empty()) { throw new IllegalStateException("Stack is Empty"); } return head.min; } //判断栈是否为空 private boolean empty() { return head == null; } } class ListNode { public int val; public int min;//最小值 public ListNode next; public ListNode(int val, int min, ListNode next) { this.val = val; this.min = min; this.next = next; } } ```
目录
相关文章
|
6天前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
6天前
|
搜索推荐 算法 Java
经典排序算法之-----选择排序(Java实现)
这篇文章通过Java代码示例详细解释了选择排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过选择排序对数组进行升序排列。
经典排序算法之-----选择排序(Java实现)
|
7天前
|
搜索推荐 算法 Java
|
11天前
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
30 2
|
11天前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
26 1
|
11天前
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
22 1
|
4天前
|
算法 Java
HanLP — HMM隐马尔可夫模型 -- 维特比(Viterbi)算法 --示例代码 - Java
HanLP — HMM隐马尔可夫模型 -- 维特比(Viterbi)算法 --示例代码 - Java
11 0
|
6天前
|
搜索推荐 算法 Java
插入排序算法(Java代码实现)
这篇文章通过Java代码示例详细解释了插入排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过插入排序对数组进行升序排列。
|
Java
Java中需要注意的一些案例
Java中需要注意的一些案例
109 0