【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; } } ```
目录
相关文章
|
14天前
|
Java 测试技术 应用服务中间件
常见 Java 代码缺陷及规避方式(下)
常见 Java 代码缺陷及规避方式(下)
43 0
|
16天前
|
Java
Java中ReentrantLock释放锁代码解析
Java中ReentrantLock释放锁代码解析
25 8
|
15天前
|
算法 Java C语言
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
|
2天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
8天前
|
算法
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
18 3
|
8天前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
12 3
|
8天前
|
算法
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
30 1
|
8天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
9天前
|
算法 DataX
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
|
10天前
|
算法 数据可视化 数据挖掘
R语言社区主题检测算法应用案例
R语言社区主题检测算法应用案例
12 0