![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
DeepGoAI
欢迎学习交流!
展开
-
两个链表相交的一系列问题
思路:1.首先要实现对单链表是否有环的判断,以及取得第一个入环节点。步骤为,设定一个块指针,每次走两步,设定一个慢指针,每次走一步。如果无环,则快指针能够很块遍历完链表,直接退出返回NULL如果有环,则他们会在某个时刻相遇,此时让快指针指向头指针,并且,快指针和慢指针每次只走一步。最后相遇的位置即为第一个入环节点。2.其次是判断,两个链表是否相交,分以下几种情况:1...原创 2020-04-17 21:11:50 · 243 阅读 · 0 评论 -
计算满足最大值减最小值小于某个数的子数组个数
计算满足最大值减最小值小于某个数的子数组个数分析:先验知识:一个数组中,如果满足max(arr[i..j])-min(arr[i..j]),则内部的所有子数组都满足 (仔细思考一下)一个数组中,如果不满足max(arr[i..j])-min(arr[i..j]),则内部的所有子数组都不满足用双指针的方式,i和j都从左往右移动,但是i不能超过j当i和j范围内都满足条件...原创 2020-04-14 22:27:49 · 380 阅读 · 0 评论 -
给定整形矩阵map,计算最大矩形区域为1的数量
给定整形矩阵map,计算最大矩形区域为1的数量如题:思路:此处需要用到单调栈1.首先对每一行进行遍历,并构造以当前行作为底部,的一个直方图。举个例子,假设数据如下:3 4 1 0 1 1 1 0 1 0 1 1 1 1 那么先遍历第一行,得到的直方图就是 1 0 1 1,...原创 2020-04-13 22:20:17 · 432 阅读 · 2 评论 -
将数组进行划分,并求两个数组最大值之间的差值
将数组进行划分,并求两个数组最大值之间的差值思路:因为要将数组进行划分为两个,并计算两个数组之间最大值的差值。很容易想到用预处理数组,分别计算从左到右所记录的当前最大值和从右到左所记录的当前最大值然后再进行遍历,计算两者差值的最大值代码:#include<iostream>#include<cstdio>#include<cst...原创 2020-04-10 22:23:56 · 999 阅读 · 0 评论 -
两个不相交的数组最大和
题目如题下分析:要从数组中找出两个不相交的子数组,并计算两者的最大和。可以看出,本质上这两个子数组是不相交的,所以各占数组的一半。可以设定两个预处理数组:1.首先从右往左扫,当指针走到第i个位置,计算当前N-1,到i 中,所遇到的最大累加和,并记录下来,对每个位置i都进行如此计算,通过这样,就可以知道每个位置在从右往左扫的时候所遇到的最大累加和。2.接着从左往右扫,同样以上...原创 2020-04-10 21:56:03 · 890 阅读 · 0 评论 -
计算水的容积
思路:对每一个格子,都计算其对应能容纳的水,即单独考察每一个位置,实际上能容纳多少的水。比方说上面的例子,我们看 第2个位置,对应的高度为1,要计算这个位置实际上能容纳的水,只需要计算这个位置的左边部分的最高点,和右边部分的最高点,就能轻松计算出这个位置实际能容纳的水量了。 就是 3-1 = 2。那么,对于每个位置,如何计算其左边部分最大值和右边部分最大值呢?很简单,就是从左往...原创 2020-04-05 22:08:16 · 708 阅读 · 0 评论 -
计算一个矩阵中,累加和最大的子矩阵的累加和
如题:思路:如果采用暴力的方法,那么复杂度为O(n^4)如果矩阵为一个(1*M)大小的话,那么就是求数组的最大累加和。https://blog.csdn.net/Willen_/article/details/104601391其次,我们思考一个矩阵为(2*M)大小的情况,做法就是先求第一行的所有子矩阵的最大累加和(就是数组的最大累加和)然后再求第一行到第二行的所有...原创 2020-04-04 22:46:46 · 430 阅读 · 0 评论 -
C - Public Sale HDU - 2149
C - Public SaleHDU - 2149虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。后来发现,整个拍卖会只有Lele和他的死对头Yuey...原创 2019-06-19 10:54:14 · 129 阅读 · 0 评论 -
Minimum Scalar Product Kattis - minimumscalar
Minimum Scalar ProductKattis - minimumscalar You are given two vectors v1=(x1,x2,…,xn) and v2=(y1,y2,…,yn). The scalar product of these vectors is a single number, calculated as x1y1+x2y2+…+xnyn...原创 2019-01-06 10:16:28 · 270 阅读 · 0 评论 -
string和int,doule...数字之间的快速转换
####string 对象与 sscanf 函数在 C 语言中,sscanf 函数很管用,它可以把一个字符串按你需要的方式分离出子串,甚至是数字。下面这个程序演示了 sscanf 函数的具体用法:#include <string>#include <iostream>using namespace std;int main(int argc, char*...原创 2018-11-05 23:03:43 · 200 阅读 · 0 评论