算法范本
我只是一只自动小青蛙
这个作者很懒,什么都没留下…
展开
-
在线编程常见输入输出
一、多组等长数据输入题目:输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。输出a+b的结果。解决方案:使用iostream头文件和std命名空间使用while(cin >> a >> b)来依次读取多组输入,这里注意a和b需要提前定义输入输出例子//输入1 510 20//输出630解题代码#include <iostream>using namespace std;int main(){原创 2021-07-17 23:49:12 · 1204 阅读 · 1 评论 -
算法范本:链表
一、链表基础链表的基础操作包括链表的创建和增删查改。其中链表的索引index一般从0开始。这里有以下几点需要注意:链表是一个类,节点结构体是类中的一个私有结构体对于一个链表,其私有数据需要包括节点结构体,虚拟头结点,节点数量对于节点结构体,需要在定义结构体的时候需要定义构造函数,且不要忘记结构体定义最后的;号对于链表,需要在public中定义链表的初始化构造函数class MyLinkedList {private: /---链表依赖的基础结构:节点,节点数量,虚拟头结点---/原创 2021-07-09 16:00:24 · 581 阅读 · 0 评论 -
那些见过才会的题目
11. 盛最多水的容器给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。这道题应该使用双指针方法来做,初始化左右指针分别指向数组的左右两端,指针移动规则为:如果左指针元素小于右指针元素,则左指针向右移动如果右指针元素小于左指针元素,则右指针向左移动记录指针遍历过程中全部容量,选择其中最大的最最原创 2021-07-09 13:03:20 · 125 阅读 · 2 评论 -
算法范本:旋转矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。其核心问题在于:遍历多少圈:(min(m, n) + 1) / 2最后一个数如何处理:特殊处理什么时候遍历完成:必须实时判定,以防最后一圈遍历两次class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { //空矩阵处理,一定先判定m原创 2021-07-08 17:26:36 · 233 阅读 · 0 评论 -
算法范本:滑动窗口
滑动窗口算法可以用于位于一个符合题意的子序列,在O(n)时间复杂下完成序列的子序列查找。一、滑动窗口滑动窗口的思想核心是先移动窗口终止位置扩张窗口;当扩张后的窗口不符合要求时,移动窗口其实位置缩小窗口,从而找到符合条件的窗口。其中要求:当窗口为空时,必须能够满足要求,否则窗口的起始位置就会超越终止位置int start = 0, end = 0, len = 0, res = INT32_MAX, sum = 0;/---窗口终止位置移动---/for(end; end < nums.原创 2021-07-08 17:03:14 · 197 阅读 · 0 评论