![](https://img-blog.csdnimg.cn/b69e0041cff9498992e1086cb1807851.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题
文章平均质量分 73
记录力扣题解和过程中的一些关键点
珍珠是蚌的眼泪
这个作者很懒,什么都没留下…
展开
-
单例设计模式
单例模式原创 2022-09-08 21:02:20 · 242 阅读 · 1 评论 -
排序算法(自学)
排序算法1.基本排序算法总结1.1 冒泡排序1.2 选择排序1.3 插入排序1.4 希尔排序1.5 归并排序(递归)1.6 快速排序(对冒泡排序的一种改进)1.7 堆排序(大根堆,小根堆)1.8 基数排序(空间换时间)1.基本排序算法总结1.1 冒泡排序//1.冒泡排序 /* * 算法分析 最佳情况:T(n) = O(n) 最差情况:T(n) = O(n2) 平均情况:T(n) = O(n2) 两两依次比较,将大值后原创 2022-05-04 16:29:31 · 430 阅读 · 0 评论 -
力扣刷题记录_热题100(自学)
热题1001、 无重复字符的最长子串(力扣3)1、 无重复字符的最长子串(力扣3)//1.滑动窗口 public int lengthOfLongestSubstring(String s) { if(s.length() < 2) return s.length(); Map<Character,Integer> map = new HashMap<Character,Integer>(); int left =原创 2022-05-01 11:23:55 · 1156 阅读 · 0 评论 -
力扣刷题记录_数学(自学)
数学1、计数质数(力扣204)1、计数质数(力扣204)//1.暴力解法(超出时间限制) public static int countPrimes(int n) { int count = 0; for (int i = 2; i < n; i++) { if(isPrimes(i)){ count ++; } } return count;原创 2022-04-17 18:21:43 · 335 阅读 · 0 评论 -
力扣刷题记录_位运算(自学)
位运算一.只出现一次的数字(力扣136)一.只出现一次的数字(力扣136)原创 2022-04-09 10:57:40 · 309 阅读 · 0 评论 -
力扣刷题记录_剑指offer
剑指offer1.剑指 Offer 11. 旋转数组的最小数字1.剑指 Offer 11. 旋转数组的最小数字//1.时间复杂度O(n) public int minArray(int[] numbers) { if(numbers == null || numbers.length == 0) return -1; for(int i = 0;i < numbers.length - 1;i ++){ if(numbers[i]原创 2022-03-20 10:16:44 · 854 阅读 · 0 评论 -
力扣刷题记录_单调栈(自学)
单调栈1.单调栈总结1.1 经验总结2.每日温度(力扣739)1.单调栈总结1.1 经验总结什么时候用单调栈呢?通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。2.每日温度(力扣739)//1.暴力 public int[] dailyTemperatures(int[] temperatures) { if(temperatures == null || temperatures.length == 0原创 2022-03-18 16:55:19 · 125 阅读 · 0 评论 -
力扣刷题记录_动态规划(自学)
动态规划1.动态规划总结1.1 回溯算法思路总结2.斐波那契数(力扣509)1.动态规划总结1.1 回溯算法思路总结2.斐波那契数(力扣509)//1.动态规划(使用数组) public int fib(int n) { if(n <= 1) return n; int[] dp = new int[n + 1]; dp[0] = 0; dp[1] = 1; for(int i = 2;i <=原创 2022-03-01 19:55:24 · 265 阅读 · 0 评论 -
力扣刷题记录_贪心算法(自学)
回溯算法1.贪心算法总结1.1 回溯算法思路总结2.分发饼干(力扣455)3.摆动序列(力扣376)4.最大子数组和(力扣53)5.最大子数组和(力扣53)1.贪心算法总结1.1 回溯算法思路总结2.分发饼干(力扣455)//1.贪心:小饼干先喂饱小胃口 public int findContentChildren(int[] g, int[] s) { Arrays.sort(g); Arrays.sort(s); int res = 0;原创 2022-02-24 16:24:12 · 758 阅读 · 0 评论 -
力扣刷题记录_回溯算法(自学)
回溯算法1.回溯算法总结1.1 回溯算法思路总结1.2 回溯算法模板2.组合(力扣77)1.回溯算法总结1.1 回溯算法思路总结1、最本质的法宝是“画图”,千万不能偷懒,拿纸和笔“画图”能帮助我们更好地分析递归结构,这个“递归结构”一般是“树形结构”,而符合题意的解正是在这个“树形结构”上进行一次“深度优先遍历”,这个过程有一个形象的名字,叫“搜索”;我们写代码也几乎是“看图写代码”,所以“画树形图”很重要。2、然后使用一个状态变量,一般我习惯命名为 path、pre ,在这个“树形结构”上使用“原创 2022-02-17 21:37:23 · 615 阅读 · 0 评论 -
力扣刷题记录_二叉树(自学)
二叉树1、二叉树的最小深度(力扣111)2、二叉树的最小深度(力扣111)1、二叉树的最小深度(力扣111)//1.递归 /* * 1.确定递归函数参数和返回值。传入一个节点,返回以此节点为根节点的树的最小深度 * 2.确定递归的终止条件。当所传入的节点为null,返回为0 * 3.确定每一层的逻辑。 * 1.当前节点为null,返回0;2.当前节点的左子节点和右子节点均为null,返回1; * 3.当前节点的左节点或右节点为null,返回原创 2022-01-17 15:51:20 · 395 阅读 · 0 评论 -
力扣刷题记录_栈和队列(自学)
栈与队列1、用栈实现队列(力扣232)2、用队列实现栈(力扣225)1、用栈实现队列(力扣232) //输入栈 Deque<Integer> instack; //输出栈 Deque<Integer> outstack; public MyQueue() { //使用linkedlist来实现 instack = new LinkedList<In原创 2021-12-25 12:15:20 · 384 阅读 · 0 评论 -
力扣刷题记录_双指针法(自学)
双指针法1、移除元素(力扣27)2、删除有序数组中的重复项(力扣26)1、移除元素(力扣27) //1.双指针 public static int removeElement(int[] nums, int val) { int left = 0,right = nums.length - 1; while (left <= right){ if (nums[left] == val){ nums[l原创 2021-12-04 21:31:45 · 240 阅读 · 0 评论 -
力扣刷题记录_字符串(自学)
字符串一、字符串1、反转字符串(力扣344)2、反转字符串(力扣344)一、字符串1、反转字符串(力扣344)public void reverseString(char[] s) { int len = s.length; for(int i = 0;i < len / 2;i ++){ char c = s[i]; s[i] = s[len - i - 1]; s[len - i - 1]原创 2021-12-03 20:09:26 · 3808 阅读 · 1 评论 -
力扣刷题记录_哈希表(自学)
哈希表一、pandas是什么?1、pandas是什么?一、pandas是什么?1、pandas是什么?原创 2021-11-28 10:06:29 · 269 阅读 · 0 评论 -
力扣刷题记录_链表(自学)
文章目录一、移除链表元素1.移除链表元素(力扣203)一、移除链表元素1.移除链表元素(力扣203)原创 2021-11-22 21:52:34 · 247 阅读 · 0 评论 -
力扣刷题记录_数组(自学)
力扣刷题记录一.数组1.二分查找1.1 二分查找模板1.2 二分查找递归和非递归1.3 二分查找(力扣704)1.4搜索插入位置(力扣35)1.5.在排序数组中查找元素的第一个和最后一个位置(力扣34)1.6.x 的平方根(力扣69)1.7.有效的完全平方数(力扣367)一.数组1.二分查找1.1 二分查找模板其中「二分」模板其实有三套l < r1.当check(mid) == true调整的是 left = mid 时:计算 mid 的方式应该为:mid = left + right原创 2021-11-17 21:17:37 · 568 阅读 · 0 评论 -
早期刷题总结
主要记录自己还是在校生时的刷题记录原创 2021-05-23 15:31:02 · 1428 阅读 · 0 评论