算法竞赛向 C++ Standard Library 使用速查

本文旨在对算法竞赛所需 C++ Standard Library 做一个全面而相对严谨的总结。 全文主要参考以下文档: Containers library - cppreference.com C++ 标准库简介 - OI Wiki 如有能力,阅读原文可获得更深入的了解。 1 STL 算法 均在

单窗算法的地表温度反演:谷歌地球引擎GEE代码

本文介绍在GEE中基于Landsat遥感影像实现地表温度(LST)单窗算法反演的代码~

算法基础(一):串匹配问题(BF,KMP算法)

好家伙,学算法, 这篇看完,如果没有学会KMP算法,麻烦给我点踩 希望你能拿起纸和笔,一边阅读一边思考,看完这篇文章大概需要(20分钟的时间) 我们学这个算法是为了解决串匹配的问题 那什么是串匹配? 举个例子: 我要在"彭于晏吴彦祖"这段字符串中找到"吴彦祖"字符串 这就是串匹配 这两个算法太抽象了

【算法】父亲节购物

某年的父亲节正好是6月18日(6/18)。小明想为他的爸爸买一个礼物,他发现商店里有n个商品,每个商品都有一个正整数的价格。小明注意到,他的爸爸喜欢偶数,所以他想购买一些商品,使得价格的总和是一个偶数。 请你帮助小明计算,在给定的n个商品中,有多少种购买方式可以使得价格的总和是一个偶数。 输入: 一

【算法】时间格式化-秒

编写一个函数,以人性化的方式将格式化时间,以秒为最小单位。 函数必须接受非负整数。如果它为零,它只返回“现在”。否则,持续时间表示为年、天、小时、分钟和秒的组合。 举个例子: *对于秒=62,您的函数应该返回 “1分2秒” *对于秒=3662,您的函数应返回 1小时1分2秒

【算法】编写一个函数,返回数字数组的“峰值”(或局部最大值)的位置和值。

编写一个函数,返回数字数组的“峰值”(或局部最大值)的位置和值。 例如,数组arr=[0,1,2,5,1,0]在位置3处具有值为5的峰值(因为arr[3]等于5)。 输出将以Dictionary<string,List<int>的形式返回,其中包含两个键值对:“pos”和“peaks”。如果给定的数

【算法】罗马数字与整型数字转换,数值范围1-4000

编写两个函数,将罗马数字与整数值进行转换。每个函数将测试多个罗马数字值。 现代罗马数字是通过从最左边的数字开始分别表示每个数字,并跳过任何值为零的数字来书写的。在罗马数字1990中,表示为:1000=M,900=CM,90=XC;从而产生MCMXC。2008被写成2000=MM,8=VIII;或MM

【算法】建非空输入字符串的所有排列,并删除重复项

今天的任务是创建非空输入字符串的所有排列,并删除重复项(如果存在)。 创建尽可能多的“洗牌”! 示例: 使用输入“a”: 您的函数应返回:[‘a’] 输入“ab”时: 您的函数应返回['ab','ba'] 输入“abc”时: 您的函数应返回[abc','acb','bac','ca','cab','

【算法】根据整数数组,生成正的素因子二维数组,并排序

给定一个正整数或负整数的数组,I=[i1,..,in] 生成一个形式为的排序数组P [[p,I数组的所有ij的和,其中p是ij的素因子(p为正)]…] P将按素数的递增顺序进行排序。 示例: I={12,15};//结果=“(2 12)(3 27)(5 15)” [2,3,5]是I的元素的所有素因子

【算法】根据输入的正整数,重新排列生成一个更大的数字

需求:创建一个函数,该函数取一个正整数,并返回下一个较大的数字,该数字可以通过重新排列其数字来形成。例如: 12 >21 513==>531 2017 >2071 如果数字不能重新排列以形成更大的数字,则返回-1: 9 >-1 111=>-1 531=>-1

【算法】找出平衡括号的排列组合

用c#编写一个函数,列出一个字符串列表,此字符串表示平衡n对括号的所有方法的排列组合。 示例:BalancedParens(0) returns List with element: ""BalancedParens(1) returns List with elem

【算法】根据二叉树的级别返回排序后的元素列表

根据给定的Node树节点,返回包含按级别排序的树中元素的列表,这意味着根元素位于第一位,然后根子元素(从左到右)位于第二位和第三位,依此类推。 1 public class Node 2 { 3 public Node Left; 4 public Node Right; 5 public int

【算法】根据输入的整数数组,以范围格式返回格式正确的字符串。

输入是一种整数有序数组的格式,使用逗号分隔 单个整数或由起始整数表示的整数范围,起始整数与结束整数之间用短划线“-”分隔。范围包括数值区间中的所有整数,包括两个端点。除非它至少跨越3个数字,否则它不被视为一个范围。例如“12,13,15-17”表示数值范围。 完成解决方案,使输入数组按递增顺序获取整

【算法】在各种排列组合下,计算零钱找零方式数量

写一个函数,在给定一系列硬币面额的情况下,计算你可以用多少种不同的方式来兑换一笔钱。 例如,如果你有面额为1和2的硬币,有3种方法可以为4找零: 1+1+1+1,1+1+2,2+2。 硬币的顺序无关紧要: 1+1+2==2+1+1 此外,假设你有无限数量的硬币。 示例调用,一个金额和一系列独特面额的

【算法】编写一个函数,返回两个正数的和,有可能超过ulong长度

编写一个函数,返回两个数字的和。输入数字是字符串,函数必须返回一个字符串。 示例: 添加(“123”,“321”);->“444” 添加(“11”,“99”);->“110” 备注: 输入的数字很大,有可能超过ulong长度。 输入是一个只有数字的字符串。 数字是正数。 算法实现: 1 using

【算法】用c#实现德州扑克卡牌游戏规则

德州扑克是一种牌类游戏,可多人参与,它的玩法是,玩家每人发两张底牌,桌面依次发5张公共牌,玩家用自己的两张底牌和5张公共牌自由组合,按大小决定胜负。 使用c#完成功能Hand()以返回手牌类型和按重要性递减顺序排列的等级列表,用于与同类型的其他手牌进行比较,即最佳手牌。 可能的手牌按价值降序排列:

【算法】用c#实现自定义字符串编码及围栏解码方法

编写一个函数/方法,它接受2个参数、一个字符串和轨道数,并返回ENCODED字符串。 编写第二个函数/方法,它接受2个参数、一个编码字符串和轨道数,并返回DECODED字符串。 然后使用围栏密码对其进行解码。 这种密码用于通过将每个字符沿着一组“竖状轨道”依次放在对角线上来对字符串进行编码。首先开始

【算法】在vue3的ts代码中分组group聚合源数据列表

有一个IList()对象列表, 示例数据为[{id:'1',fieldName:'field1',value:'1'},{id:'1',fieldName:'field2',value:'2'},{id:'2',fieldName:'field1',value:'1'},{id:'2',f

【算法】用c#实现计算方法中的经典降幂优化策略,减少计算复杂度

对于给定的数组[x1,x2,x3,…,xn],计算幂的累积:x1^(x2^(x3^(…^xn))的最后一位(十进制)数字。 例如,对于数组[3,4,2],您的代码应该返回1,因为3^(4^2)=3^16=43046721。 结果的增长得快得令人难以置信。例如,9^(9^9)有超过3.69亿个数字。你

【算法】斐波那契数列与台风的故事

在小岛的一个海滨小镇上,住着一个名叫苏菲的女孩。苏菲一家人靠海为生,她的生活简单而朴素,与大自然和谐共生。每天,苏菲都会来到海边,欣赏那美丽的日出和日落,感受着大海的呼吸。 然而,小岛的美丽风光并非一成不变。每年夏季,热带气旋活跃,台风频繁登陆,给小岛带来了严重的危害。 有一天,苏菲经历了一场猛烈的