
算法
文章平均质量分 59
宁皇说java
大专文学专业在读,干过工地和外卖,觉得还是编程香,目前研究方向:分布式微服务,检索引擎,数据仓库
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode743.网络延迟时间
题目 思路: 求使所有节点都收集到了信息的时间,必须以最远的那个节点为基础,若最远的那个节点访问到了那么其他的节点也必能访问到,我们现在只需要尽可能的到每个节点的时间最端,然后找出用时最长的时间即可 使用Floyd算法计算多源最短路径,再在最短路径中找出最长路径 ================== 下面介绍floyd算法 =========================================== 基于多源的最短路径算法,其算法的核心在于动态规划,逐步试探,算法的时间复杂度为O(n原创 2021-11-23 17:31:39 · 522 阅读 · 0 评论 -
leetcode304. 二维区域和检索 (二维前缀)
二维区域和检索题目首先引入二维前缀二维前缀的模板 题目 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。 上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。 示例: 给定 matrix = [ [3, 0, 1, 4, 2], [5, 6, 3, 2, 1], [1, 2, 0, 1, 5], [4, 1, 0, 1, 7], [原创 2021-05-29 19:13:33 · 206 阅读 · 0 评论 -
快速幂(java)
快速幂必备的数学知识问题引入1. 递归法2. 非递归实现(扩大底数法) 必备的数学知识 对于 加法有(a+b)%c=((a%c)+(b%c))%c 则乘法也有(ab)%c=((a%c)(b%c))%c //可以代入数去实验 问题引入 我们用程序去计算2的3次方显然等于8,但2的1000次方呢,显然结果是越界,编译器器会报错或输出一个0 对于大数运算,外面采用快速幂的方式进行降低时间复杂度的运算 例如计算2的n次方并对2019取模的值(n可以取大数) 1. 递归法 核心递归式 a的n次方对c取余 1.为奇数原创 2021-03-23 16:03:59 · 347 阅读 · 0 评论 -
一维前缀和与差分数组
前缀和与差分数组 这里写目录标题前缀和与差分数组前言一维前缀和差分数组 前言 :对于一些枚举算法题当中,往往会涉及到时间复杂度太高而无法AC的情况 利用前缀和的方法可以以空间换时间,是对一些枚举题当中很重要的优化算法。 下面介绍两常用的性质上用来辅助的算法 一维前缀和 核心思路:前缀和->前n项的和=前n+1项和减去第n+1项 例题应用 随机给定L和R两个整数,返回Arrays这个整数数组中第L个元素到第R个元素之和 常规代码(时间复杂度O(n*随机给定的次数)) int sum; for(int原创 2021-03-10 20:51:36 · 187 阅读 · 0 评论