面试
wangfy_
这个作者很懒,什么都没留下…
展开
-
记录
【代码】记录。原创 2022-12-23 10:42:01 · 95 阅读 · 0 评论 -
二叉树插入元素
【代码】二叉树插入元素。原创 2022-10-03 17:17:01 · 189 阅读 · 0 评论 -
#### LFU(least frequently used)最近最不经常使用算法 ####
部分内容摘自 https://leetcode-cn.com/problems/lfu-cache/solution/lfuhuan-cun-by-leetcode-solution/lfu问题get(int key)- 如果键key 存在于缓存中,则获取键的值,否则返回 -1 。put(int key, int value)- 如果键key 已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量capacity 时,则应该在插入新项之前,移除最不经常使用的项。在此问题中...转载 2022-03-14 17:22:11 · 529 阅读 · 0 评论 -
重点的领域
八股(go/db/redis/mq/es...)题(剑指offer、leetcode)项目(多活、房间系统、互动、开播)原创 2022-03-01 14:32:26 · 462 阅读 · 0 评论 -
常见八股文
1、redis删除大key摘自:redis 删除大key集合的方法 - 大数据技术派 - 博客园redis大key,这里指的是大的集合数据类型,如(set/hash/list/sorted set),一个key包含很多元素。由于redis是单线程,在删除大key(千万级别的set集合)的时候,或者清理过期大key数据时,主线程忙于删除这个大key,会导致redis阻塞、崩溃,应用程序异常的情况。方案1:程序扫描scan分批删除hash key:通过hscan命令,每次获取500个原创 2022-02-23 20:55:52 · 442 阅读 · 0 评论 -
查找单向链表的中间节点
要求时间复杂度O(n),且单向链表的长度未知。思路:快慢指针,快指针一次两步,慢指针一步,当快指针到达链表结尾时,慢指针指向的结点即为中间节点...原创 2019-03-03 23:25:44 · 2375 阅读 · 0 评论 -
Leetcode :88. Merge Sorted Array (Easy)
归并两个有序数组Input: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3Output: [1,2,2,3,5,6]把归并结果存到第一个数组上。需要从尾开始遍历,否则在 nums1 上归并得到的值会覆盖还未进行归并比较的值。public void merge(int[] nums1, int m, ...原创 2019-03-07 13:40:38 · 167 阅读 · 0 评论 -
乐观锁与悲观锁
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思...原创 2019-03-03 16:57:52 · 250 阅读 · 0 评论 -
获取一个自然数的重新排列后,下一个比它大的自然数
给定任意一个自然数,获取它重新排列后,下一个比它大的自然数,要求时间复杂度O(n)。例如: 给定1233,它的下一个是1323; 给定1323,它的下一个是1332; 给定9876,它的下一个不存在;#include <cstdio>#include <algorithm>#include <cstr...原创 2019-01-10 20:22:48 · 1029 阅读 · 0 评论 -
栈和队的互相模拟
面试有感:技术面试中,其实面试官也想让你进公司,面试官不会故意刁难你,问的东西是他们可以接受的东西,前提是你不要显得太菜,没啥难的。充分的、高效的和面试官进行一次技术交流,不要错过这样一次和几年后的自己交流的机会,nice!cool!-------------------------------------------------------------------------------...原创 2019-01-10 23:10:30 · 149 阅读 · 0 评论 -
将数组中所有为0的元素挪到数组末尾
给定一个由正数,负数和0组成的整数数组,将所有为0的元素,挪到数组末尾。要求时间复杂度O(n)。public class T1 { public static void solve(int arr[]) { int len = arr.length; int arr2[] = new int[len]; int j = 0, count = 0; for(int i = 0...原创 2019-01-09 16:03:49 · 2977 阅读 · 1 评论 -
尾调用、尾递归
尾调用指某个函数的最后一步是调用另一个函数1:function f(x){ return g(x);}2:function f(x){ let y = g(x); return y;}3:function f(x){ return g(x) + 1;} 1是尾调用,2/3不是 注意:尾调用不一定出现在函数尾部,只要是最后一步操作即可fun...原创 2019-01-15 17:57:11 · 346 阅读 · 0 评论 -
反转句子
写个函数func(str),传参str为一个字符串,实现把这个字符串语句中的单词(空格隔开的)次序逆序。比如把 I am a coder变成 coder a am I,不允许使用正则,reverse,join,substr,split,find,append,indexOf等系统库函数import java.util.Scanner;public class test { public...原创 2019-02-22 13:13:12 · 896 阅读 · 0 评论 -
转发与重定向
forward =跳转:地址栏不改变,称作服务端跳转,保存requestresponse = sendRedirect重定向:地址栏改变,称作客户端跳转,不保存request登录跳转用重定向Struts:(与jsp里的区别是一样的)...原创 2019-02-22 15:11:13 · 132 阅读 · 0 评论 -
HashMap
HashMap的主干是数组,在常规构造器中,没有为数组table分配内存空间(有一个入参为指定Map的构造器例外),而是在执行put操作的时候才真正构建table数组。HashMap是一种散列表,散列表要解决的一个问题就是散列值的冲突问题,通常是两种方法:链表法和开放地址法。链表法就是将相同hash值的对象组织成一个链表放在hash值对应的槽位;开放地址法是通过一个探测算法,当某个槽位已经被占...原创 2019-03-03 16:00:14 · 229 阅读 · 0 评论 -
统计字符串中字母/空格/数字/其它字符的个数
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用while语句,条件为输入的字符不为'\n'。import java.io.IOException;public class T2 { public static void main(String[] args) throws IOException { int letter = 0, space =...原创 2019-01-10 20:19:54 · 4156 阅读 · 1 评论