算法
文章平均质量分 59
宁皇说java
大专文学专业在读,干过工地和外卖,觉得还是编程香,目前研究方向:分布式微服务,检索引擎,数据仓库
展开
-
Leetcode743.网络延迟时间
题目思路:求使所有节点都收集到了信息的时间,必须以最远的那个节点为基础,若最远的那个节点访问到了那么其他的节点也必能访问到,我们现在只需要尽可能的到每个节点的时间最端,然后找出用时最长的时间即可使用Floyd算法计算多源最短路径,再在最短路径中找出最长路径================== 下面介绍floyd算法 ===========================================基于多源的最短路径算法,其算法的核心在于动态规划,逐步试探,算法的时间复杂度为O(n原创 2021-11-23 17:31:39 · 446 阅读 · 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 · 147 阅读 · 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 · 287 阅读 · 0 评论 -
一维前缀和与差分数组
前缀和与差分数组这里写目录标题前缀和与差分数组前言一维前缀和差分数组前言:对于一些枚举算法题当中,往往会涉及到时间复杂度太高而无法AC的情况利用前缀和的方法可以以空间换时间,是对一些枚举题当中很重要的优化算法。下面介绍两常用的性质上用来辅助的算法一维前缀和核心思路:前缀和->前n项的和=前n+1项和减去第n+1项例题应用随机给定L和R两个整数,返回Arrays这个整数数组中第L个元素到第R个元素之和常规代码(时间复杂度O(n*随机给定的次数))int sum;for(int原创 2021-03-10 20:51:36 · 140 阅读 · 0 评论