![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
野生程序猿RW
2020年毕业于台湾科技大学(Taiwan Tech),后端开发工程师一枚。
展开
-
215. 数组中的第K个最大元素(优先队列,堆排序)
215. 数组中的第K个最大元素优先队列的思路是很朴素的。由于找第 K 大元素,其实就是整个数组排序以后后半部分最小的那个元素。因此,我们可以维护一个有 K 个元素的最小堆:如果当前堆不满,直接添加;堆满的时候,如果新读到的数小于等于堆顶,肯定不是我们要找的元素,只有新遍历到的数大于堆顶的时候,才将堆顶拿出,然后放入新读到的数,进而让堆自己去调整内部结构。说明:这里最合适的操作其实是 replace(),即直接把新读进来的元素放在堆顶,然后执行下沉(siftDown())操作。Java 当中的 Pr原创 2022-02-28 20:15:41 · 475 阅读 · 0 评论 -
703. 数据流中的第 K 大元素(优先队列,堆排序)
数据流中的第 K 大元素设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest 类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。示例:输入:["KthLargest", "add", "add", "add", "add", "add"].原创 2022-02-28 19:49:07 · 294 阅读 · 0 评论 -
[校招] 英文句子单词反转 - 哔哩哔哩 2020
[校招] 英文句子单词反转 - 哔哩哔哩 2020描述原地翻转句子中单词的顺序,但单词内字符的顺序不变。要求:空间复杂度O(1),时间复杂度O(n)。输入英文句子中单词以一个空格符隔开。为简单起见,标点符号和普通字母一样处理。输出翻转之后的英文句子,单词内字符的顺序不变,以一个空格隔开输入例子I am a student.输出例子student. a am Iimport java.util.Scanner;public class SentenceInversion { pu原创 2022-02-28 16:43:35 · 167 阅读 · 0 评论 -
141. 环形链表
141. 环形链表给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接原创 2022-02-13 23:14:29 · 224 阅读 · 0 评论 -
21. 合并两个有序链表
合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) {.原创 2022-02-13 19:59:37 · 143 阅读 · 0 评论 -
判断一个IP地址是否合法,算法面试题
1、 首先输入字符串,然后因为ip的特点可以根据 . 来进行分割字符串,这里需要主要分割的时候因为 . 在java里的特殊所有前面需要加上\,然后存入数组中,转换成int类型判断即可。注意输入的如果是字母转int会异常,所有用try catch处理一下,下面给出代码。package com.ccl.study;import java.util.Scanner;public class ippanduan { public static void main(String[] args) { ..原创 2022-02-13 18:56:17 · 816 阅读 · 0 评论 -
判断一个数是否是素数(质数)
质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。判断一个数是否是素数(质数)import java.util.Scanner;public class Test { public static void main(String[] args) { boolean isPrime = true; Scanner sc = new Scanner(System.in); System.out.println原创 2022-02-13 18:47:01 · 235 阅读 · 0 评论 -
后端开发知识地图
八股文MQ(Kafka总结)微服务组件总结JVM总结MySQL总结并发多线程总结Redis总结线程池总结操作系统总结计算机网络总结Java基础知识总结Spring总结Linux总结项目数据结构与算法算法题总结...原创 2021-06-16 17:04:13 · 472 阅读 · 4 评论 -
Git操作
拉取代码git clone -b feature repoAddr将commit内容回滚到上一个版本git回退到上个版本git reset --hard HEAD^回退到前3次提交之前,以此类推,回退到n次提交之前git reset --hard HEAD~3原创 2021-06-19 11:31:41 · 59 阅读 · 0 评论 -
请看这里,力扣题目分类目录$$$
栈模拟逆波兰表达式求值」、「224. 基本计算器」、「227. 基本计算器 II」原创 2021-04-01 11:23:16 · 372 阅读 · 0 评论 -
面试题 17.21. 直方图的水量
面试题 17.21. 直方图的水量给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6题解单调栈class Solution { public int trap(int[] height)翻译 2021-04-02 16:02:17 · 48 阅读 · 0 评论 -
JVM萌新入手大全
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RhKvGwQe-1616334581147)(https://i.loli.net/2020/02/26/rY2Q6bXhUDLNSkR.png)]内存泄漏可达性分析用什么数据结构比较好(JVM)运行时数据区(JVM)创建对象的过程(JVM)判断一个对象是否被回收(JVM)新生代和老年代用的垃圾回收策略对象的创建与内存分配String存储在常量池解析将一部分(编译期可知,运行期不可变)的符号引用转为直接原创 2021-03-21 21:53:15 · 213 阅读 · 2 评论 -
Java多线程导论及延申
并发大全JUC大全2万字参透并发编程jvm中线程分为哪些状态在执行Thread.start()方法后,线程是不是马上运行。多线程导论原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行。可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。有序性即程序执行的顺序按照代码的先后顺序执行。多线程设计模式解读—Producer-Consumer模式请简述一下线程的sleep()方法和yi.原创 2021-03-16 16:54:28 · 1714 阅读 · 9 评论 -
232. 用栈实现队列
232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty:实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有 push to top, peek/pop from原创 2021-03-05 22:07:05 · 116 阅读 · 0 评论 -
TwoSum ThreeSum FourSum KSum
15. 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]Solutions//先排序O(nlogn),然后查每一个数后面两数之和为当前数相反数的所有可能(夹逼法)。O(n2原创 2020-10-05 20:14:34 · 117 阅读 · 0 评论 -
【吉比特面试题】删掉重复的字符串
题目描述牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母’a’和字母’n’分别出现了三次和两次。但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现并删除掉后面出现的字母。请帮助牛牛完成对s的操作。字符串可能会有大小之分。题解第一种方法遍历两个数组用,用charAt()判断是否重复,如果重复就删掉第二个数组中的重复元素,然后J- -第二种方法(作者:就这些吗)可以用HashSet去重import java.util.*;publ原创 2020-06-27 14:55:15 · 403 阅读 · 0 评论 -
[微软面试题]01.07旋转矩阵
面试题 01.07. 旋转矩阵给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix =[ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], [ 2, 4, 8,1原创 2020-06-27 14:52:34 · 309 阅读 · 0 评论