随笔分类 -  算法

摘要:冒泡排序 n2 稳定 空间1 n小比较好 插入排序 n2 稳定 空间1 n小比较好 选择排序 n2 不稳定 空间1 大部分已经排序比较好 快速排序 nlogn 不稳定 空间nlogn n大比较好 堆排序 nlgn 不稳定 空间1 n大时比较好 希尔排序 nlogn 不稳定 空间1 和 归并排序 nl 阅读全文
posted @ 2022-03-18 10:20 牵魂 阅读(55) 评论(0) 推荐(0)
摘要:现获取道两个字符串长度最长的n,将char类型转化为int类型,设置car来接收进位,然后循环之后,再判断car是否为1,如果为1,用StringBuilde类型来接收,最后在反转一下,调用toString方法返回。 package com.lhb.offer; /** * @author lhb 阅读全文
posted @ 2022-03-16 10:39 牵魂 阅读(46) 评论(0) 推荐(0)
摘要:给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 package com.lhb.offer; import java.util.Deque; import java.util.LinkedList; /** * @author lhb * @date 2 阅读全文
posted @ 2022-03-15 16:50 牵魂 阅读(32) 评论(0) 推荐(0)
摘要:// 空间换时间、利用两个栈进行存储,加入时候注意,如果当前值等于最小栈的栈顶元素,也需要加入class MinStack { Stack<Integer> stack1; Stack<Integer> stack2; public MinStack() { stack1 = new Stack<> 阅读全文
posted @ 2022-03-15 14:20 牵魂 阅读(19) 评论(0) 推荐(0)
摘要:给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3 阅读全文
posted @ 2022-03-15 13:51 牵魂 阅读(38) 评论(0) 推荐(0)
摘要:给定一个正整数 n ,输出外观数列的第 n 项。 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列: countAndSay(1) = "1"countAndSay(n) 是对 countAndSay(n-1) 的描述, 阅读全文
posted @ 2022-03-15 13:34 牵魂 阅读(32) 评论(0) 推荐(0)
摘要:请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注意: 一个有效的数独(部分已被填充)不一定是 阅读全文
posted @ 2022-03-15 12:53 牵魂 阅读(42) 评论(0) 推荐(0)
摘要:给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 分享一下思路:定义一个虚节点dummy,后续节点指向head节点,获取left之前的节点为p和left节点为m和 阅读全文
posted @ 2022-03-15 12:35 牵魂 阅读(35) 评论(0) 推荐(0)
摘要:给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是) 题目数据保证答案符合 32 位带符号整 阅读全文
posted @ 2022-03-15 09:16 牵魂 阅读(40) 评论(0) 推荐(0)
摘要:将一个16进制的数,统计它的1个个数 思路:遍历字符串,将每一个字符进行判断,每一个字符可以具体表示有多少个1,最后累加即可 public static void main(String[] args) { int sum = 0; Scanner sc = new Scanner(System.i 阅读全文
posted @ 2022-03-14 21:05 牵魂 阅读(47) 评论(0) 推荐(0)
摘要:N皇后问题,可以用回溯算法解决 但是考虑到45度不能有元素存在 135度不能有元素存在还有一列不能有相同元素存在 终止条件,row==n的时候,需要使用将char【】【】 转化为list添加到List<List<String>> ret 中。 package com.lhb.offer; impor 阅读全文
posted @ 2022-03-14 16:58 牵魂 阅读(36) 评论(0) 推荐(0)
摘要:其底层实现的用map管理的双向链表,在链表的头部存放最近被访问的,尾部自然就是最近最久未被访问的节点。 其中需要保存的有size、capacity、head、tail、map成员属性 方法有get和put, 初始化的时候,需要设置参数大小,如果不设置的话,默认为10; get方法,需要判断map中是 阅读全文
posted @ 2022-03-14 16:03 牵魂 阅读(40) 评论(0) 推荐(0)
摘要:算出时针和分针与12点的角度,然后相减,取绝对值。 package com.lhb.baidu; /** * @author lhb * @date 2022/3/13 */ public class TimeAndSecond { public static double angle(int ho 阅读全文
posted @ 2022-03-13 08:44 牵魂 阅读(115) 评论(0) 推荐(0)
摘要:36进制的和 - 面试题目 - bd 主要是对数字和字符之间的转化处理操作,以及StringBuilder的reverse方法和toString方法。 package com.lhb.bytedance; /** * @author lhb * @date 2022/3/12 */ public c 阅读全文
posted @ 2022-03-12 21:39 牵魂 阅读(27) 评论(0) 推荐(0)
摘要:巧妙利用的是list的下标,不同的位置,加的值不同。 package com.lhb.listnode; import java.util.ArrayList; import java.util.List; /** * @author lhb * @date 2022/3/12 */ public 阅读全文
posted @ 2022-03-12 20:08 牵魂 阅读(46) 评论(0) 推荐(0)
摘要:package com.lhb.stack;import java.util.Deque;import java.util.LinkedList;/** * @author lhb * @date 2022/3/12 */public class StackTest { public static 阅读全文
posted @ 2022-03-12 19:42 牵魂 阅读(97) 评论(0) 推荐(0)
摘要:leetcode上面题目 需要运用到快速排序,position方法返回数组此时的数组下标index,如果index的值和nums.length-k == index的话,直接放回nums[index], 如果k < index的话,需要对left、index - 1进行继续划分,否则对index + 阅读全文
posted @ 2022-03-12 16:18 牵魂 阅读(24) 评论(0) 推荐(0)
摘要:股票的买卖,运用动态规划 每一天的状态有五种: 0 : 不操作 1:第一次买入 2:第一次卖出 3:第二次买入 4:第二次卖出 dp[i][0] 表示第i天的不操作的最大收益 dp[i][1] 表示第i天的第一次买入的最大收益 dp[i][2] 表示第i天的第一次卖出的最大收益 dp[i][3] 表 阅读全文
posted @ 2022-03-12 16:12 牵魂 阅读(15) 评论(0) 推荐(0)
摘要:62进制-算法 将10进制的long类型转化为有a-z0-9A-Z的62进制,long类型转为String类型。 package com.lhb.bytedance; import java.util.Deque; import java.util.LinkedList; /** * @author 阅读全文
posted @ 2022-03-12 15:48 牵魂 阅读(148) 评论(0) 推荐(0)