interface Bird { fly: boolean; sing: () => {}; } interface Dog { fly: boolean; bark: () => {}; } // 类型断言的方式 function trainAnimal(animal: Bird | Dog){ if(animal.fly){ (animal as Bird).sing() }else { (animal as Dog).bark() } }
1.题意 给一些相同的信用卡,本质上是圆,求以所有信用卡的圆心为点集,求这个点集的凸包的周长。 2.思路 这题事实上没那么难。 不会凸包或者计算几何的,去看https://www.luogu.com.cn/problem/P2742,或者看看https://oi-wiki.org//geometry/的讲解。 事实上,如果信用卡是矩形,那么直接可
const timeFormat = function (mSeconds) { if (mSeconds === 0) { return '<1s' } if (isNaN(mSeconds)) { return '00:00:00' } else { mSeconds = Math.round(mSeconds / 1000) if (mSeconds < 1) { return '
排序 思路: 首先我们要满足构造出来的序列保持不增的顺序,所以一开始先按\(a_i\)从大到小排序;其次要考虑攻击力的增益之后,还要满足不增,那么我们就考虑最极端的情况,两个相邻的人\(A,B\),将整个序列所有的增益都给\(A\),将\(A\)的增益给除\(B\)以外的任意一个,只要还能够满足\(A'\g
Flags 题意:N 个 flag,第 \(i\) 个在 \(x_i\) 或 \(y_i\) 坐标上,求一种方案,使得每个 flag 之间的最小距离最大。 \(2\le N \le 10^4, 1\le x_i, y_i \le 10^9\) 不妨设 \(a[i] = x_i, a[i+n] = y_i\) ,这样可以方便的取出同组元素。 排序后,为了定位到原位置,需要使用 pair 去存放每个
15.三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 排序 + 双指针 class Solution { public List<List<Integer>> threeSum(int[] nums) {
结构体声明 struct InitMember { int first; double second; char* third; float four; }; 方法一:定义时赋值 struct InitMember test = {-10,3.141590,"method one",0.25}; 1 需要注意对应的顺序,不能错位。 方法二:定义后逐个赋值 struct InitMember t
一、STL库 1.动态数组 vector<int> a .push_back() .pop.back() .size() .clear() 可能存在空间爆炸问题,用 vector<int> () .swap(v)来解决。 2.集合 set<int> v .insert() .erase() .cout() 比较方式: Bool operator<(const people &rhs) const { Return h
uniapp升级到Vue3自定义封装的js文件导出方式与Vue2的格式不一样 封装js的 export 导出和 在其他页面使用import引入的方式导致的报错 Vue2 /** * 消息框,错误框,确认框,等待框等封装 */ import base from '@/common/js-base.js'; let alert = { /** * @descripti
19. 删除链表的倒数第 N 个结点 1.简单模拟,计算链表长度 如果知道链表的长度,以及倒数第几个节点需要删去,就可得知正数需要删除第几个节点。可以先遍历一次计算出长度,再删除相应节点。 链表相应的题目,可以使用哑巴节点dummy,避免头节点为空的讨论问题,无论何种情况,只需要dummy
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { int n; cin >> n; set<string> S; for (int i = 0; i < n; i++) { string s; cin >> s; S.insert(s); }
pair 默认对first升序,当first相同时对second升序; 类模板:template <class T1, class T2> struct pair 参数:T1是第一个值的数据类型,T2是第二个值的数据类型。 功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second
【1】TCP压测 【1.1】tcp局域网压测 当前实例,配置文件中已经开启了 4 个线程 (1)单线程 CPU使用:300%-340% redis-benchmark -h 192.168.191.82 -p 6387 -a 123456 -d 3 -q -c 50 -n 1000000 --threads 1 -t get,set,lpush (2)4线程 redis-benchmark -h 192.168.191.82 -p 6387 -a 1234
算法:set的数组去重,防止有相同直线误算交点. 步骤:1.把有斜率,截距的组合存到set数组中. 2.指针it指向s数组中第一个组合(每个组合里有first second) 把first的值都放到a数组里,second的值都放到b数组里. 3.交点查询:逐个查找目前的线,遍历之前的线.把焦点存放到数组中. #in
主要考察归并排序得思想,本题方法很多 我自己写的非最优版本 public void merge(int[] nums1, int m, int[] nums2, int n) { if (n == 0) { return; } if (m == 0) { for (int i = 0; i < n; i++) { nums
文章目录 栈应用括号匹配汉诺塔列车车厢重排离线等价类问题布线问题迷宫老鼠 队列应用列车车厢重排电路布线(Lee算法) 栈 栈和队列可以视为数组和链表的限制版本。 应用 括号匹配 问题描述:对一个字符串的左右括号进行匹配。 解题思路:遇到左括号,入栈。遇到右括号,出栈,若没
一、前言 震惊,这道题竟然是我的边分树入门题!感谢永神教我边分树! 前排警告:这是我没借鉴任何题解,自己写的代码,非常丑,如果你是为了看我代码而来的,小心为妙! 做这道题之前我甚至没写过一道边分治。 二、题目 洛谷 LOJ UOJ 三、讲解 在了解边分树之前,我们先需要了解边分治,如果你有点分治
圆与连线 题目链接:YBT2022寒假Day10 A 题目大意 二维平面上有个圆心在原点的圆,然后有一些在原外的点。 然后问你最多能选多少个点使得两两之间的连边与圆不相交,保证两两连边不会与圆相切。 思路 你考虑对于一个点,那些点跟它相连不会有交。 你画图会发现,做这个点到圆的两个切线,在切
一、概述 案例:使用addWeighted将两张图片融合到一块 addWeighted(mat_first,alpha,mat_second,beta,gamma,dst);1.mat_first:第一张输入图片2.alpha:第一张图片的权重值3.mat_second:第二章输入图片4.beta:第二章输入图片的权重5.gamma:传0.06.dst:融合后的图片ps: 1.alp
面试题 01.05. 一次编辑 字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。 示例 1: 输入: first = "pale" second = "ple" 输出: True 示例 2: 输入: first = "pales" second = "
题目链接 题解链接 题外话 无意间在评论区发现了原来是 125周赛题 所以晚上补充一下,他山之石,可以攻玉, @bigelephant29 解题思路 每一个灯(坐标),有五个属性: 行 (横坐标 x ) 列 (纵坐标 y ) 撇 (直线 y=x+t \(\Longrightarrow\) 记录 x-y ) 捺 (直线 x+y=t \(\Longrightarrow\)
删除线 这是傻逼 这是脚注[1],脚注2[2] 定义列表 First Term This is the definition of the first term. Second Term This is one definition of the second term. This is another definition of the second term. 定义标题id Heading IDs 表情 Gone camping! ⛺ Be back soon
文章目录 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分)一、题目二、题解 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分) 一、题目 二、题解 我这个做法其实写的时候自己都容易迷糊(捂脸。基本思路就是统计好每个模块的个数,然后排序。代码如下: #includ
题目描述: 主要思路: 如何判断两个奶牛过马路的路线是否有交点呢? #include<iostream> #include<algorithm> #include<cstring> #include<set> using namespace std; typedef pair<int,int> pa; const int N=1e5+10; pa a[N]; set<int> b; int main() { int n;
题目描述 如果字符串中不含有任何 ‘aaa’,‘bbb’ 或 ‘ccc’ 这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。 给你三个整数 a,b ,c,请你返回 任意一个 满足下列全部条件的字符串 s: s 是一个尽可能长的快乐字符串。 s 中 最多 有a 个字母 ‘a’、b 个字母 ‘b’、c