算法
技匠而已
在这一片天地,留下一点足迹。
展开
-
优美的排列 II 给你两个整数 n 和 k ,请你构造一个答案列表 answer ,该列表应当包含从 1 到 n 的 n 个不同正整数,并同时满足下述条件
给你两个整数 n 和 k ,请你构造一个答案列表 answer ,该列表应当包含从 1 到 n 的 n 个不同正整数,并同时满足下述条件:假设该列表是 answer = [a1, a2, a3, ... , an] ,那么列表 [|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1 - an|] 中应该有且仅有 k 个不同整数。返回列表 answer 。如果存在多种答案,只需返回其中 任意一种 。原创 2022-09-09 01:04:53 · 284 阅读 · 0 评论 -
无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。原创 2022-09-04 01:32:04 · 221 阅读 · 0 评论 -
【算法】两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]输入:l1 = [2,4,3], l2 = [5,6,4]请你将两个数相加,并以相同形式返回一个表示和的链表。每个链表中的节点数在范围 [1, 100] 内。输入:l1 = [0], l2 = [0]输出:[8,9,9,9,0,0,0,1]题目数据保证列表表示的数字不含前导零。输出:[7,0,8]转载 2022-09-02 00:25:18 · 227 阅读 · 0 评论 -
对外暴露Id异或加密解密
直接对外暴露Id的访问方式对于系统来说极为危险,有可能存在信息泄露的风险,为了降低风险可以进行对外暴露的id进行相应的加密处理,加密后使之不能随意破解,保护用户信息import java.time.LocalDate;import java.time.format.DateTimeFormatter;/** * 对外暴露Id异或加密解密 * * @author lwj * @date 2022-01-13 16:42:11 */public class XorEncryptionI.原创 2022-01-13 17:57:56 · 3898 阅读 · 1 评论 -
Java 8 Base64 编码解码
Java 8 Base64 编码解码Base64 是一种常见的字符编码解码方式,一般用于将二进制数据编码为更具可读性的 Base64 进制格式。在 Java 6 ( JDK 1.6 ) 之前, JDK 一直没有包含 Base64 的实现类。因此大部分人都使用 Sum/Orale JDK 里面的 sun.misc.BASE64Encode 和sun.misc.BASE64Decode。然后这也成为很多 Java 开发者的习惯。一直沿用到今天的 Java8 中还有人在用。JDK 1.6虽然添加了 Base原创 2021-09-09 10:06:16 · 7151 阅读 · 0 评论 -
Java多线程高并发编程中点点理解
CAS (compare and swap/ compare and exchange)比较与交换:不需要加锁实现的多线程安全访问?ABA问题,在比较当前值的时候,中间有值被修改 ,由原本的0 修改为2之后 再有线程修改为0 即:A -> B -> A 经过转换之后,再次比较读出的虽然是A 但是已经不是原来的A。有人说:A还是A啊 ,有什么关系? 假设:张三的女朋友跟张三分手后,经历了100个男朋友,然后再与张三复合。那么他们还是原来的他们吗? ps:例子有些不太美妙,但是记忆深刻原创 2021-09-08 11:07:35 · 95 阅读 · 0 评论 -
编写二分查找和使用集合类的二分查找实现
如下所示,编写二分查找和使用集合类的二分查找实现import java.util.Arrays;import java.util.Scanner;public class DigitalGame { public static void main(String[] args) { int[] arr = {8,4,2,123,344,12}; DigitalGame digitalGame = new DigitalGame(); digit原创 2021-04-07 14:54:39 · 98 阅读 · 0 评论 -
java打印倒三角
如下所示:使用java在控制台输出三角形1 3 6 10 152 5 9 144 8 137 1211import java.util.Scanner;public class Demo { public static void main(String[] args) { Demo demo = new Demo(); demo.fun2(); } /** * 求倒三角 其原创 2021-04-07 14:52:09 · 3145 阅读 · 3 评论 -
while方法判断回文数的两种方式以及使用String 的reverse方法
判断回文数的两种方式纯数学逻辑 & String方法判断纯数学逻辑 public void judge(int num){ int lastNum ; while (num>9){//如果是两位数以上 进行循环 int numLen = 10; lastNum = num - ((int)(num/10))*10; while (num/numLen>9){//判断当前数字原创 2021-03-26 13:36:12 · 1305 阅读 · 0 评论 -
算法:买小鸡,公鸡2元,母鸡3元,小鸡0.3,要求:100元 ,买100只鸡可以有剩余
博客来源:闲来无聊,感觉脑子最近不在状态,忙里偷闲刷刷算法,不过好久没用的脑子有点不够灵活,遇到一道买东西的题,不过感觉发挥并不好,后续有时间完善更好的方法话不多说,直接给出代码吧/** * 买小鸡 * 公鸡2元 母鸡3元 小鸡0.3 * 100元 ,买100只鸡 * * 思路: * 1、 规定全买一直鸡 如:全买公鸡(三种选择,三选一) * * 2、 少买一只公鸡,买只其他鸡(买母鸡,或小鸡 两种选择,二选一) ...原创 2021-03-08 11:22:12 · 4343 阅读 · 0 评论