算法时间复杂度
流浪车手
每天都希望自己进步一点点。
展开
-
国庆节也来刷刷题!力扣:148. 排序链表
题目:力扣题目要求nlgn的时间复杂度完成排序。那么时间复杂度为nlgn的排序算法大概有三种:1.快排2.堆排3.归并快排不怎么合适,需要不停地交换结点,而且还需要维护双指针,可能不太合适堆排更不太合适了,也依赖于数组归并虽然也依赖于数组,但是依赖性没那么大,是一种分治的思想自顶向下:public class Solution1 { public ListNode sortList(ListNode head) { if (head =原创 2021-10-02 17:22:51 · 141 阅读 · 0 评论 -
力扣:146. LRU 缓存机制
题目转载自:力扣https://leetcode-cn.com/problems/lru-cache/解答:public class LRUCache { class CacheNode { Integer key; Integer value; CacheNode prePointer; CacheNode nextPointer; public CacheNode(Integer key, .原创 2021-09-18 12:52:52 · 156 阅读 · 0 评论 -
力扣:142. 环形链表 II
题目转载自:力扣分析:这一题题目要求使用O(1)的时间复杂度来解。然后大概有两种解法来做,下面分别来介绍一下:首先判断链表是否有环,如果有环的话,先将指针定位到环内(可以通过快慢指针来将两个指针在环内相遇,这样就能定位到环内的结点了)。在拿到环内结点的情况下有以下两种方法来解题:1.因为是一个环,所以我们可以分别指向环内的每个点,然后在确定了环内固定点之后这里用P1代表环内的固定点,声明一个指针指向链表头部这里用P2代表头结点,然后P2移动每次前移一步,P1不动,用一个整型变量.原创 2021-09-17 14:31:04 · 142 阅读 · 0 评论 -
力扣:96. 不同的二叉搜索树
初拿到这题时,很自然的就想到用递归来做。然后就有了下面的解法,最终执行没问题,只是超时了,明天优化一下。public class Solution { public int numTrees(int n) { if (n == 1) { return 1; } int res = 0; for (int i = 1; i <= n; i++) { // 把 i 当成...原创 2021-09-08 00:05:32 · 124 阅读 · 0 评论 -
力扣:84. 柱状图中最大的矩形 && 85. 最大矩形
待补充原创 2021-09-05 12:34:07 · 151 阅读 · 0 评论 -
力扣62题:不同路径
题目转载自:https://leetcode-cn.com/problems/unique-paths/(如有侵权,将会删除)分析:刚看到题目的时候,内心os:这不就用回溯就可以做了吗,简单!然后就有了下面的代码:package lc.lc62;public class FirstSolution { public int uniquePaths(int m, int n) { if (m == n && m == 1) { ...原创 2021-08-17 17:36:03 · 130 阅读 · 0 评论 -
力扣:49.字母异位词分组
数据库一般有两个术语:1.数据库文件指的是数据库数据保存的文件2.数据库实例指的是用于处理数据库文件的进程,mysql为单进程多线程模型。mysql实例在操作系统中的表现就是一个实例。Mysql的组成部分:连接池组件管理服务和工具组件SQL接口组件查询分析器组件优化器组件缓冲组件插件式存储引擎物理文件...原创 2021-08-14 14:34:46 · 171 阅读 · 0 评论 -
力扣46.全排列
注:题目转载自leetcode,https://leetcode-cn.com/problems/permutations/dfs:package lc.lc46;import java.util.ArrayList;import java.util.List;public class FirstSolution { public List<List<Integer>> permute(int[] nums) { if (nums ==..原创 2021-08-12 20:53:13 · 96 阅读 · 0 评论 -
力扣42题:接雨水
给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9来源:力扣(LeetCode)链接:https://leetcode-...原创 2021-08-11 23:20:30 · 114 阅读 · 0 评论 -
leetcode39.组合总和
题目地址:https://leetcode-cn.com/problems/combination-sum/分析原创 2021-08-07 12:23:17 · 53 阅读 · 0 评论 -
剑指offer-17题
很久没做题了,堕落了。给自己订个计划,尽量每天做一题力扣或者一道剑指offer的题目。题目描述:代码:public class Design { /** * 全排列递归法 * @param n */ public static void print1ToMaxOfNDigits(int n) { if (n <= 0) { return; } char[] num原创 2021-02-21 16:03:45 · 188 阅读 · 2 评论 -
剑指offer-11题
由于工作比较忙,就趁着工作间隙刷刷剑指offer和leetcode吧。尽量每天打卡题目描述:题目解答:public class Design { public static int getMinNumFromNums(int[] nums) { if (nums == null || nums.length == 0) { return Integer.MIN_VALUE; } int begin = 0;.原创 2021-01-31 22:59:38 · 90 阅读 · 0 评论 -
leetcode617.合并二叉树
class Solution { public TreeNode mergeTrees(TreeNode t1, TreeNode t2) { TreeNode node = DFS(null, t1, t2, 0); return node; } public TreeNode DFS(TreeNode res, TreeNode resChild, TreeNode followChild, int leftOrRightFlag) { .原创 2020-12-26 13:38:32 · 88 阅读 · 3 评论 -
leetcode10. 正则表达式匹配
题目来源:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/regular-expression-matching------------------------------------------------------------------------------------------题目描述:给你一个字符串s和一个...原创 2019-07-23 20:12:22 · 190 阅读 · 0 评论 -
for循环三层嵌套 时间复杂度计算
假设有这样一个for循环for(i=1;i<=n;i++) for(j=1;j<=i;j++) for(k=1;k<=j;k++) x++;现在要求它的时间复杂度,看起来有点麻烦,但是只要我们把问题分解成若干个小问题一一解决,那么就容易多了。首先,我们考虑这么一种情况,当i取值为a的时候,那么我们上面那个三层循环...原创 2016-11-20 19:52:16 · 43369 阅读 · 13 评论