算法与数据结构
嘿丶单炒饭
没有什么能让你加班的 如果有就通宵~
展开
-
基础排序算法
public class Sort { public static void quickSort(Integer[] arr, int low, int high) { int temp = arr[low]; int i = low; int j = high; if (low >= high) { ...原创 2020-03-10 15:27:29 · 308 阅读 · 0 评论 -
三数之和
给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] /*...原创 2020-01-17 17:48:52 · 137 阅读 · 0 评论 -
两数之和
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] class...转载 2020-01-17 13:52:29 · 286 阅读 · 0 评论 -
有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例1: 输入: s = "anagram", t = "nagaram" 输出: true 思路:哈希映射 首先判断两个字符串长度是否相等,不相等则直接返回 false 若相等,则初始化 26 个字母哈希表,遍历字符串 s 和 t s 负责在对应位置增加,t 负责在对应位置减少 如果哈希表的值都为 0,则二...原创 2020-01-16 18:31:35 · 136 阅读 · 0 评论 -
输出滑动窗口最大值(双端队列)
给定一个数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] import java.util.ArrayDeque; import java....原创 2020-01-16 17:29:19 · 261 阅读 · 0 评论 -
实时判断数据流中的第K大元素
int k = 3; int[] arr = [4,5,8,2]; KthLargest kthLargest = new KthLargest(3, arr); kthLargest.add(3);// returns 4 kthLargest.add(5);// returns 5 kthLargest.add(10);// returns 5 kthLargest.add(9...原创 2020-01-14 15:53:14 · 246 阅读 · 1 评论 -
优先队列
堆就是用数组实现的二叉树,所有它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。 堆的常用方法: 构建优先队列 支持堆排序 快速找出一个集合中的最小值(或者最大值) 堆属性 堆分为两种:最大堆和最小堆(小顶堆和大顶堆),两者的差别在于节点的排序方式。 在最大堆中,父节点的值比每一个子节点的值都要大。在最小堆中,父节点的值比每一个子节点的值都要小。这就是...原创 2020-01-14 15:46:43 · 121 阅读 · 0 评论 -
Java单链表基本操作
单链表的结构 单链表的存储原理图,head为头节点,他不存放任何的数据,只是充当一个指向链表中真正存放数据的第一个节点的作用,而每个节点中都有一个next引用,指向下一个节点,就这样一节一节往下面记录,直到最后一个节点,其中的next指向null。 代码实现单链表 链表节点的定义 链表是由一个个节点连接形成的,先定义节点类,节点类主要分数据和next指针 public class...原创 2020-01-09 12:11:28 · 225 阅读 · 0 评论 -
用栈实现队列
使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 import java.util.Stack; public class MyQueue { private Stack<Integer> stackPush; ...原创 2020-01-14 13:50:09 · 185 阅读 · 0 评论