2015西电机试算法题
2015西电机试算法题 时间:2025年3月8日19:10:12 start-> Problem 1题目描述:请写一个程序,判断给定的整数序列能否构成等差数列。 输入说明:多组数据,每组输入数据由两行构成,第一行只有一个整数n(n<1000),表示序列长度(即序列中整数的个数,0表示输入结束),第二行为n个整数。每个整数的取值区间都为[-32768—32767]->(int),证书之间以空格或挑格间隔。 输出说明:对于每一组数据,输出一个yes或no,表示该序列能够构成等差数列。 输入样本: 6 23 15 4 18 35 11 3 3 1 2 0 输出样本: no yes 代码: 12345678910111213141516171819202122232425262728293031323334353637#include<cstdio>#include<algorithm>#include<vector>using namespace std;int main(){ int n,num; //...
Hello World 2025年2月7日18:05:38
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
无标题
单调栈学习链接: 刷题论 02|单调栈真没你想的那么难_哔哩哔哩_bilibili 单调栈【基础算法精讲 26】_哔哩哔哩_bilibili 一、单调栈的原理 单调栈是一种特殊的栈结构,其核心在于维护栈内元素的单调性(递增或递减),用于高效解决序列中元素的 最近邻大小关系 问题。其核心原理如下: 单调性维护:在遍历数组时,若当前元素破坏栈的单调性(例如,在单调递减栈中当前元素比栈顶大),则弹出栈顶元素,直到满足单调性再入栈。这一过程使得栈内元素保持单调性,从而快速确定每个元素的最近邻更大或更小元素 方向选择: 单调递增栈:栈底到栈顶元素递增,用于寻找当前元素的下一个更小元素。 单调递减栈:栈底到栈顶元素递减,用于寻找当前元素的下一个更大元素。 二、深究 单调栈的方向选择(递增或递减)与寻找元素的下一个更大或更小值之间的关联性,源于其维护单调性的规则和遍历顺序的配合。以下是具体分析: 2.1...
touchstone_2025/03/06
:whale:touchstone_2025/03/06 1.数组和链表的区别答: 特性 数组 链表 存储方式 连续存储 非连续存储 访问效率 O(1)(随机访问) O(n)(顺序访问) 插入/删除 O(n)(需移动元素) O(1)(只需修改指针) 内存利用率 100% 高(无需指针) <100% 低(需要存储指针域) 内存分配 栈区,固定大小 堆区,动态分配 适用场景 数据量固定,频繁访问 数据动态变化,频繁插入/删除 2.简述快速排序的过程答: 快速排序(Quick Sort)是一种基于分治法的高效排序算法,其核心思想是通过递归地将数据划分为两部分,逐步实现排序。以下是快速排序的主要步骤: 1.选择基准元素(Pivot) 从待排序数组中选择一个基准元素,通常选择第一个元素、最后一个元素或中间元素。 2.分区(Partition) 将数组分为两部分: 左边部分包含小于或等于基准元素的值。 右边部分包含大于基准元素的值。 具体操作: 使用两个指针(i 和...
touchstone_2025/03/03
:whale:touchstone_2025/03/03 时间:2025年3月3日21:11:37 1. 数据结构:二叉树遍历的非递归实现问题:写出二叉树先序遍历的非递归算法,并分析其时间复杂度。考点:栈的应用、遍历算法的灵活实现。 回答: 123456789101112def preorderTraversal(root): stack, result = [], [] if root: stack.append(root) while stack: node = stack.pop() result.append(node.val) if node.right: # 右子节点先入栈 stack.append(node.right) if node.left: # 左子节点后入栈 stack.append(node.left) return...
【CCF CSP-20131202】ISBN 号码
【CCF CSP-20131202】ISBN 号码题意概述每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-是分隔符(键盘上的减号),最后一位是识别码。识别码的计算方法如下: 首位数字乘以 1 加上次位数字乘以 2……以此类推,用所得的结果 mod 11,所得的余数即为识别码,如果余数为 10,则识别码为大写字母 X。例如 ISBN 号码 0-670-82162-4 中的识别码 4 是这样得到的:对 067082162 这 9 个数字,从左至右,分别乘以 1,2,…,9,再求和,即 0×1+6×2+……+2×9=158,然后取 158 mod 11 的结果 4 作为识别码。 编写程序判断输入的 ISBN 号码中识别码是否正确,如果正确,则仅输出Right;如果错误,则输出是正确的 ISBN 号码。 输入输出格式输入只有一行,是一个字符序列,表示一本书的 ISBN 号码(保证输入符合 ISBN 号码的格式要求)。 输出一行,假如输入的 ISBN...
【CCF CSP-20131201】出现次数最多的数
【CCF CSP-20131201】出现次数最多的数题意概述给定 n 个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入输出格式输入的第一行只有一个正整数 n,表示数字的个数。输入的第二行有 n 个整数$a_1,a_2,\cdots,a_n$。相邻的数用空格分隔。 输出这 n 个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 数据规模$$1\le n\le1000,1\le a_i\le10000$$ 算法设计法1:使用桶来计数,计数过程中同步更新 法2:可以使用 map 来存储数字及其对应的出现次数,然后使用 max_element 函数统计出现次数最多的数字即可。 时间 2025年2月28日20:02:00 C++代码C++法1:1234567891011121314151617181920#include<cstdio>int main(){ int n; scanf("%d",&n); int cnt[10001]={}; int...
touchstone_2025/02/27
:whale:touchstone_2025/02/27 时间:2025年2月27日01:05:53 -> 2025年2月27日01:45:02...
