![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法+数据结构+LeetCode+牛客+剑指offer
榴月~
自强,弘毅,求是,拓新
展开
-
LC - 1436旅行终点站
1436旅行终点站给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此恰有一个旅行终点。1、双循环操作 public static String destCity(List<List<String>> paths) {原创 2021-10-08 23:08:59 · 62 阅读 · 0 评论 -
leetcode350_两个数组的交集II
package leetcode.array;import java.util.Arrays;import java.util.HashMap;import java.util.Map;/** * 2020/11/11 21:45 * 官方解题思路 * 一: * 使用HashMap记录第一个数组中存在的数字和对应存在的次数。 * 遍历第二个数组,检查是否在HashMap中存在,如果存在且次数为正,则将该数字添加到result中,并将Hashmap计数减一。 * 二: * 两数组排序转载 2020-11-13 11:33:40 · 89 阅读 · 0 评论 -
LC-加一和ArrayList转成数组
package leetcode.array;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;/** * * 2020/9/29 22:39 * 报错了,当数较大时溢出了,应该考虑使用字符串或者考虑大数,但是大数有可能会更复杂。 * 学习内容: * 1、ArrayList反转,Collections.reverse(arrayList); * 2、ArrayList转换成S原创 2020-09-29 23:30:40 · 537 阅读 · 0 评论 -
LC-移动零
package leetcode.array;import java.util.Arrays;/** * 2020/9/29 22:24 * num[i] != 0 && count > 0 * num[i-1] = num[i] * num[i] = 0 */public class MoveZeroes { public static void main(String[] args) { int[] nums = {1};原创 2020-09-29 22:37:27 · 237 阅读 · 0 评论 -
LC-存在重复元素
package leetcode.array;import java.util.HashSet;import java.util.Scanner;/** * 2020/9/29 22:12 */public class ContainsDuplicate { public static void main(String[] args) { int[] array = {1,2,3,1}; System.out.println(containsDuplic原创 2020-09-29 22:21:43 · 141 阅读 · 0 评论 -
素数的时间复杂度分析
找出素数的四种方法:复杂度主要区别1. 时间复杂度:O(n2)divisor <= Math.sqrt(number)2. 时间复杂度:O(n√n)divisor <= squareRoot,其中squareRoot2 <number3. 时间复杂度:O(n√n / logn)for (int k=0; k<list.size() && list.get(k) <= squareRoot ;k++){…}4. 时原创 2020-06-01 21:39:10 · 3120 阅读 · 0 评论 -
算法复杂度O(logn)详解
@阅读目录一.O(logn)代码小证明二.典型时间复杂度三.常见的????????????????算法1.对分查找2. 欧几里得算法3.幂运算一.O(logn)代码小证明我们先来看下面一段代码:int cnt = 1;while (cnt < n){ cnt *= 2; //时间复杂度为O(1)的程序步骤序列}由于cnt每次在乘以2之后都会更加逼近n,也就是说,在有x次后,cnt将会大于n从而跳出循环,所以2???? = ???? ,也就是????=????原创 2020-06-01 11:29:57 · 35266 阅读 · 9 评论 -
约瑟夫环问题---不懂,先占个位置
问题描述:省略思路:所以我画线的位置是简化之后的关系式子,那岂不是(m-1) = (m-1)%i???原创 2019-11-19 16:03:52 · 113 阅读 · 0 评论 -
排序算法---时间-空间复杂度和稳定性
平均 最好 最坏 空间 稳定性 基数排序 d(n+r) d(n+r) d(n+r) n+r 稳定 桶排序 n n n 快速排序 n*logn n*logn n**2 n*logn 不稳定 归并排序 n*logn n*logn n*lo...原创 2019-10-16 20:05:32 · 73 阅读 · 0 评论 -
1_合并两个数组
#-*-coding:utf8-*-#@Time: 2019-10-20 18:09#@File: 合并两个有序数组.py#@SoftWare:PyCharm#@Macclass Solution: # def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: ...原创 2019-10-20 19:03:26 · 109 阅读 · 0 评论 -
2、插入-选择-冒泡-快速-排序
#-*-coding:utf8-*-#@Time: 2019-10-11 14:02#@File: Sort.py#@SoftWare:PyCharm#@Macclass recoder: def __init__(self, key, datum): self.key = key self.datum = datum#插入排序d...原创 2020-02-20 12:41:29 · 98 阅读 · 0 评论 -
3、二叉树
#二叉树的中序遍历#速度可以,但是内存太大,需要优化class Solution: def inorderTraversal(self, root: TreeNode) -> List[int]: if root == None: return [] stack = [] if root.left is no...原创 2020-02-20 12:41:52 · 100 阅读 · 0 评论 -
KMP算法
待匹配表Tabaacababcac最长公共前缀表下表01234pababc前缀表-10012-1最长公共0a转载 2020-02-20 12:41:02 · 110 阅读 · 0 评论 -
八皇后问题
启发式信息的表示。 回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。 用回溯算法解决问题的一般步骤: 1 针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。 2 确定易于搜索的解空间结构,使得能用回溯法方便地搜索整个解空间。 3 以深度优先的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。 回溯算法的基本思想是:从一条路往前走,能进则进...转载 2019-01-02 16:06:19 · 144 阅读 · 0 评论