随笔分类 - 数据结构与算法
摘要:package main import "fmt" const Size = 10 //循环队列 type queue struct { Array []int Front int Rear int } //初始化 func QueueInit()queue { return queue{ Arra
阅读全文
摘要:今天遇到一个问题,数组连续子序列 类似leetcode 53 但略微不同,是循环数组 如果一个数组 [-2,1,-3,4,-1,2,1,-5,4] 返回连续子数组最大和方法一,暴力循环,复杂度较高,不多介绍方法二,贪心法 int main() { vector<int>arr; //输入数据 int
阅读全文
摘要:堆排序可以很好解决TopK问题 时间复杂度 N(logN),不稳定排序,相同大小数据仍可能交换位置 寻找海量数据中最大的100个数据,可以建立容量100的小顶堆,然后将后面的数据与堆顶最小值比较, 如果比它大,进行交换重新将堆进行调整,后面数据以此类推,可以得到top 100的数据 package
阅读全文
摘要:快速幂可以节省大量计算时间 两种方式 递归和迭代 通常需要取模避免溢出 1.递归 #define Mod 100000 int quick(int a,int n) { if(n==0) return 1; else if(n%2==1) { return quick(a,n-1)*a%Mod; }
阅读全文
摘要:给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/unique-binary-se
阅读全文
摘要:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组
阅读全文

浙公网安备 33010602011771号