随笔分类 -  算法

摘要:需求背景 XX需求,批量输入域名的时候,需要对域名字符串进行分隔,并去重,同时分隔后统一使用换行符进行保存,便于下一次批量展示 ##输入 www.baidu.com fdas.com google.com www.baidu.com; gool.com ##预期结果 www.baidu.com fd 阅读全文
posted @ 2022-07-01 12:22 心若向阳花自开 阅读(153) 评论(0) 推荐(0)
摘要:#引言 唯一ID可以标识数据的唯一性,在分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种: 依赖数据库,使用如MySQL自增列或Oracle序列等。 UUID随机数 snowflake雪花算法(本文将要讨论) 数据库和UUID方案的不足之处 1.采用数据库自增序列 读写分离时,只有主节 阅读全文
posted @ 2021-08-08 13:02 心若向阳花自开 阅读(1896) 评论(0) 推荐(0)
摘要:#引言 题目:编写一个算法来判断一个数n是不是快乐数 来源:网友分享的面试算法题 #题目描述 【快乐数定义】 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为1,也可能是 无限循环,但始终变不到1。 如果可以变为1,那么这个数就是快乐数。 如果n是快乐数 阅读全文
posted @ 2021-05-28 20:50 心若向阳花自开 阅读(604) 评论(0) 推荐(0)
摘要:#引言 经典多线程编程面试题 使用两个线程交替输出A1B2C3......Z26 #实现方案1 public static void method2() throws InterruptedException { Object object = new Object(); AtomicInteger 阅读全文
posted @ 2021-05-21 18:19 心若向阳花自开 阅读(422) 评论(0) 推荐(0)
摘要:#引言 LRU是开发过程中设计缓存的常用算法,在此基础上,如何设计一个高效的缓存呢?本文就带大家分析并手撸一个LRUCache。 ##LRU算法 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问 阅读全文
posted @ 2021-05-20 20:25 心若向阳花自开 阅读(277) 评论(0) 推荐(0)
摘要:#引言 原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。通常所说的原子操作包括对非long和double型的primitive进行赋值,以及返回这两者之外的primitive。之所以要把它们排除在外是因 阅读全文
posted @ 2021-05-19 18:31 心若向阳花自开 阅读(289) 评论(0) 推荐(0)
摘要:#引言 最长公共子串 #描述 有两个字符串,通过遍历找出最长的公共连续子串。 #示例 输入两个字符串 abnacty eabtnacm 输出最长公共连续子串 nac #分析 将两个字符串分别以行和列的形式组成一个二维矩阵; 比较二维矩阵中每个点对应的行和列的字符是否相等,相等的话,值设为1,不相等则 阅读全文
posted @ 2021-05-14 21:33 心若向阳花自开 阅读(238) 评论(0) 推荐(1)
摘要:#引言 题目:停在原地的方案数 来源力扣:https://leetcode-cn.com/problems/number-of-ways-to-stay-in-the-same-place-after-some-steps/ #题目描述 有一个长度为 arrLen 的数组,开始有一个指针在索引 0 阅读全文
posted @ 2021-05-14 19:51 心若向阳花自开 阅读(71) 评论(0) 推荐(0)
摘要:#引言 硬币凑整问题 题目来源:力扣 https://leetcode-cn.com/circle/discuss/vMYOmI/ #题目描述 已知一个无序数组 array,元素均为正整数。给定一个目标值 target,输出数组中是否存在若干元素的组合,相加为目标值。 #测试样例与说明 对于以下无序 阅读全文
posted @ 2021-05-13 17:11 心若向阳花自开 阅读(277) 评论(0) 推荐(1)
摘要:#引言 作家作品打分 题目源自:力扣上的分享 https://leetcode-cn.com/circle/discuss/pUA0mL/ #题目描述 某某作家有n本小说,评委会要对该作家的写作进行打分。需要从中挑选两本小说进行计分,计分规则如下: 每本小说有5个方面的评价指标 两本小说进行合并计分 阅读全文
posted @ 2021-05-13 16:17 心若向阳花自开 阅读(390) 评论(0) 推荐(0)
摘要:#引言 将两个已经排好序的数组进行合并,使得合并后的数组也是有序 示例: int a[] = {1, 3, 5, 11, 20}; int b[] = {1, 2, 3, 4, 7, 8, 11, 25, 30}; 排好序的结果 1 1 2 3 3 4 5 7 8 11 11 20 25 30 #代 阅读全文
posted @ 2021-05-13 14:59 心若向阳花自开 阅读(335) 评论(0) 推荐(0)
摘要:#引言 生产者与消费者模型,是多线程编程中的经典问题。今天本文就来带大家手写一个生产者消费者模式 #1.阻塞队列 public class CustomBlockLinkedList<E> { //内部使用链表实现 private LinkedList<E> linkedList; //队列容量最大 阅读全文
posted @ 2021-05-10 17:34 心若向阳花自开 阅读(155) 评论(0) 推荐(0)
摘要:概念 MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议。 MESI协议中的状态 CPU中每个缓存行(caceh line)使用4种状态进行标记(使用额外的两位(b 阅读全文
posted @ 2021-04-30 12:56 心若向阳花自开 阅读(210) 评论(0) 推荐(0)
摘要:##一群友分享的阿里面试题 1.将head链表以m为组反转链表(不足m则不反转): 例子:假设m=3. 链表 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 ->8 output: 3 -> 2 -> 1 ->6 ->5 ->4 -> 7 ->8 ###解法一:使用JDK的链表Lin 阅读全文
posted @ 2021-03-26 13:32 心若向阳花自开 阅读(184) 评论(0) 推荐(0)
摘要:##一位群友分享的**公司面试题 **3个线程分别交替输出xyz字符,输出10遍** ``` public class XYZ implements Runnable { private static AtomicInteger atomicInteger = new AtomicInteger() 阅读全文
posted @ 2021-03-26 13:31 心若向阳花自开 阅读(314) 评论(1) 推荐(0)
摘要:##题目描述 检查子树。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。设计一个算法,判断 T2 是否为 T1 的子树。 如果 T1 有这么一个节点 n,其子树与 T2 一模一样,则 T2 为 T1 的子树,也就是说,从节点 n 处把树砍断,得到的树与 T2 完全相同。 题目来源力扣 阅读全文
posted @ 2021-03-26 13:31 心若向阳花自开 阅读(58) 评论(0) 推荐(0)