西电2014算法题
2014年西电算法题 时间:2025年3月6日21:06:42 start-> 2025年3月6日22:31:17 -》2025年3月7日11:08:45 continue-> Problem 1题目描述:编写一个程序,读入一组整数,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入说明:第一行是一个整数N,N<=20;接下来有N行,每一行表示一个整数。 输出说明:输出只有一行,即出现次数最多的那个元素值。 输入样本: 610 12 13 2 12 10 输出样本: 10 代码: 1234567891011121314151617181920212223242526#include <stdio.h>#include <unordered_map>using namespace std;int main() { int n, num; ...
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...
无标题
单调栈学习链接: 刷题论 02|单调栈真没你想的那么难_哔哩哔哩_bilibili 单调栈【基础算法精讲 26】_哔哩哔哩_bilibili 一、单调栈的原理 单调栈是一种特殊的栈结构,其核心在于维护栈内元素的单调性(递增或递减),用于高效解决序列中元素的 最近邻大小关系 问题。其核心原理如下: 单调性维护:在遍历数组时,若当前元素破坏栈的单调性(例如,在单调递减栈中当前元素比栈顶大),则弹出栈顶元素,直到满足单调性再入栈。这一过程使得栈内元素保持单调性,从而快速确定每个元素的最近邻更大或更小元素 方向选择: 单调递增栈:栈底到栈顶元素递增,用于寻找当前元素的下一个更小元素。 单调递减栈:栈底到栈顶元素递减,用于寻找当前元素的下一个更大元素。 二、深究 单调栈的方向选择(递增或递减)与寻找元素的下一个更大或更小值之间的关联性,源于其维护单调性的规则和遍历顺序的配合。以下是具体分析: 2.1...
【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...
【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...
touchstone_2025/02/27
:whale:touchstone_2025/02/27 时间:2025年2月27日01:05:53 -> 2025年2月27日01:45:02...
2025/2/7-01
1.今天主要还是在搭建了一下blog,遇到了一些bug2.现在的主要问题是加载速度太慢了,需要优化。
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