算法
(⊙o⊙)麽
这个作者很懒,什么都没留下…
展开
-
2021-10-30 剑指 Offer 20. 表示数值的字符串
C++STL中去除前后空格的操作s.erase(0,s.find_first_not_of(" "));//去除前导空格s.erase(s.find_last_not_of(" ") + 1);//去除后导空格判断一个字符是数字还是字母的方法isalnum() 用来判断一个字符是否为英文字母或数字,相当于 isalpha(c) || isdigit(c)isalpha() 用来判断一个字符是否是英文字母,相当于 isupper(c)||islower(c)删除字符函数从位置pos=1.原创 2021-10-30 16:49:32 · 123 阅读 · 0 评论 -
ccf csp稀疏向量
注意:两个数组要动态生成长度(否则是0分)sum的类型不能是Int(溢出)#include <iostream>#include<stdio.h>#include<vector>using namespace std;struct S{ long y; long v;}; long n; int a; int b;int main(){ vector<S>aa; vector<S>原创 2020-08-12 11:04:18 · 550 阅读 · 0 评论 -
csp 线性分类器
没看清题目ax+by+c中a b c 的顺序#include <iostream>using namespace std;int m;int n;struct S{ int x; int y; char c;};int main(){ cin>>n>>m; S s[1001]; int cnt=0; while(n--) { cin>>s[cnt].x>&原创 2020-08-10 10:16:58 · 1128 阅读 · 0 评论 -
leetcode 332 重新安排行程
给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 出发。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票至少存在一种合理的行程。示例 1:输入: [[“MU原创 2020-05-27 11:09:49 · 155 阅读 · 0 评论 -
leetcode 1042 不邻接之花 染色问题
有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径。另外,没有花园有 3 条以上的路径可以进入或者离开。你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。以数组形式返回选择的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1, 2, 3, 4 表示。保证存在答案。示例 1:输入:N = 3, paths原创 2020-05-26 20:38:55 · 259 阅读 · 0 评论 -
leetcode 802 找到最终的安全状态 拓扑排序
在有向图中, 我们从某个节点和每个转向处开始, 沿着图的有向边走。 如果我们到达的节点是终点 (即它没有连出的有向边), 我们停止。现在, 如果我们最后能走到终点,那么我们的起始节点是最终安全的。 更具体地说, 存在一个自然数 K, 无论选择从哪里开始行走, 我们走了不到 K 步后必能停止在一个终点。哪些节点最终是安全的? 结果返回一个有序的数组。该有向图有 N 个节点,标签为 0, 1, …, N-1, 其中 N 是 graph 的节点数. 图以以下的形式给出: graph[i] 是节点 j 的原创 2020-05-26 11:35:10 · 165 阅读 · 0 评论 -
leetcode冗余连接 并查集
在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边 [u, v] 应满足相同的格式 u < v。示例原创 2020-05-26 11:29:45 · 90 阅读 · 0 评论 -
二分图C++代码
二分图适用:染色 判断二分图#include <bits\stdc++.h>using namespace std;#define MAX_V 1000//输入vector G[MAX_V]; //图int V; //顶点数int color[MAX_V]; //顶点的颜色 (1 or -1)//顶点v,颜色cbool dfs(int v,int c){color[v] = c;//把当前顶点相邻的顶点扫一遍for(int原创 2020-05-23 10:41:05 · 444 阅读 · 0 评论 -
leetcode节点与其祖先的最大差值
给定二叉树的根节点 root,找出存在于不同节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)示例:输入:[8,3,10,1,6,null,14,null,null,4,7,13]输出:7解释:我们有大量的节点与其祖先的差值,其中一些如下:|8 - 3| = 5|3 - 7| = 4|8 - 1| = 7|10 - 13| =原创 2020-05-20 15:28:44 · 89 阅读 · 0 评论 -
leetcode 二叉树的直径
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。/** * Definition for a binary tree node. * struct TreeNode {原创 2020-05-20 14:44:26 · 150 阅读 · 0 评论 -
leetcode 首个共同祖先
设计并实现一个算法,找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意:这不一定是二叉搜索树。例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]3/ 5 1/ \ / 6 2 0 8/ 7 4递归中止条件 如果当前查找的节点是空的那么函数结束, 或者根节点等于p,q中任意一个节点,那么也相当于找到我们所找的公共祖先(根据定义最近公共祖先节点可以为节点本身)分情况讨论, left为在左子树中寻找公原创 2020-05-19 16:11:39 · 192 阅读 · 0 评论 -
牛客之双重最短路
链接:https://ac.nowcoder.com/acm/problem/21736来源:牛客网题目描述有一张n个点的无向图,标号为0到n-1,图中的每条边有两个权值,现在让你求出从0到1的最短路,最短路的定义是W1*W2,W1为路径上第一种权值的和,W2为路径上第二种权值的和,如果没有最短路,输出-1输入描述:第一行输入一个整数n (2 ≤ n ≤ 20)接下来n行每行n个字符,第i行的第j个字符表示weight1[i][j]再接下来n行每行n个字符,第i行的第j个字符表示weight2原创 2020-05-19 10:34:51 · 257 阅读 · 0 评论 -
牛客阶乘
请编写一个程序,从键盘上输入n(n 的范围是1~20),求n 的阶乘。输入描述:输入第一行为样例数m,接下来m行每行一个整数n,n不超过20。输出描述:输出m行表示对应的n的阶乘。示例1输入复制13输出复制6备注:提示:注意输出结果可能超32位整型。#include<iostream>using namespace std;long long s[21];int main(){s[1]=1; for(int i=2;i<=20;i++)原创 2020-05-18 10:55:16 · 257 阅读 · 0 评论 -
牛客练习 分组函数
题目描述编写程序,计算下列分段函数y=f(x)的值。当 0<= x <2,y= -x+2.5;当 2<= x <4,y=2-1.5(x-3)(x-3);当 4<= x <6,y=x/2-1.5;输入描述:输入第一行为整数m表示样例数,接下来有m行每行一个整数x。输出描述:输出m行分别表示对应的y值,保留小数点后一位小数。示例1输入复制213输出复制y=1.5y=2.0#include<iostream>using nam原创 2020-05-14 15:30:30 · 182 阅读 · 0 评论 -
牛客题目-计算器的改良
题目描述NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:4+3x=86a-5+1=2-2a-5+12y=0ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母...原创 2020-02-07 09:52:37 · 351 阅读 · 0 评论 -
扫雷游戏
```cpp#include <iostream>using namespace std;int main(){ int n,m; cin>>n>>m; char a[103][103]; for(int i=0;i<n+1;i++) { for(int j=0;j<m+1;j+...原创 2020-01-30 10:06:42 · 218 阅读 · 0 评论 -
迷路的牛牛
题目描述牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000)。接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。输出描述:输出牛牛最后面向的方向,N表示北,S表示南,E...原创 2020-01-29 10:49:00 · 135 阅读 · 0 评论 -
安置路灯
题目描述小Q正在给一条长度为n的道路设计路灯安置方案。为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用’.'表示, 不需要照亮的障碍物格子用’X’表示。小Q现在要在道路上设置一些路灯, 对于安置在pos位置的路灯, 这盏路灯可以照亮pos - 1, pos, pos + 1这三个位置。小Q希望能安置尽量少的路灯照亮所有’.'区域, 希望你能帮他计算一下最少需要多少盏路灯。输入描...原创 2020-01-29 09:50:25 · 168 阅读 · 0 评论