算法笔记 02 —— 入门模拟
本系列为胡凡编著的算法笔记当中代码部分的精简版整理,笔者也在同时准备Leetcode刷题和实习面试,希望为有一定编码和数据结构基础的同学提供一份系统型的参考,以方便遗忘时的算法查阅、期末复习总览以及C++学习参照。
目录
01 简单模拟
Ⅰ害死人不偿命的(3*n+1)思想
Ⅱ 挖掘机技术哪家强
02 查找元素 —— 找 x
03 图形输出 —— 跟奥巴马一起编程
04 日期处理 —— 日期差值
05 进制转换
Ⅰ D 进制的 A+B
06 字符串处理
Ⅰ 回文串
Ⅱ 说反话
01 简单模拟
Ⅰ害死人不偿命的(3*n+1)思想

#include <iostream>
using namespace std;int CalCallatz(int n){int k = 0;while(n != 1){if(n % 2 == 0){n /= 2;}else{n = (n * 3 + 1) / 2;}k++;}return k;
}int main(){int n;scanf("%d", &n);int count;count = CalCallatz(n);printf("%d", count);return 0;
}
Ⅱ 挖掘机技术哪家强

#include <iostream>
using namespace std;int main(){int N;scanf("%d", &N);//输入名单int school[100000] = {0};int k, score, flag1 = 0;for(int i = 0; i < N; i++){scanf("%d%d", &k, &score);school[k] += score;if(k > flag1) flag1 = k; //flag1记录学校个数}//查找最大int maxScore = 0, flag2 = 0;for(int i=0; i<=flag1; i++){if(school[i] > maxScore){maxScore = school[i];flag2 = i; //flag2记录最大学校编号}}printf("%d %d", flag2, maxScore);return 0;
}
02 查找元素 —— 找 x

#include <iostream>
using namespace std;
const int MAXN = 210;int main(){int n, x, num[MAXN] = {0};while(scanf("%d", &n) != EOF){ //1 输入多组数据for(int i=0; i<n; i++){scanf("%d", &num[i])}scanf("%d", &x);for(int i=0; i<n; i++){if(num[i] == x){printf("%d\n", i);break; //2 节省查找时间}}if(i == n){printf("-1\n") //3 没找到也要答复一下}}return 0;
}
03 图形输出 —— 跟奥巴马一起编程

#include <iostream>
using namespace std;int main(){int N;char c;scanf("%d %c", &N,,&c); //1 注意%d和%c之间的空格for(int i=0; i<N; i++){printf("%c", c);}printf("\n");for(int i=0; i<(int)((N + 1) / 2 - 2); i++){printf("%c", c);for(int j=0; j<(N-2); j++){printf(" ");}printf("%c\n", c);}for(int i=0; i<N; i++){printf("%c", c);}return 0;
}
04 日期处理 —— 日期差值

#include <iostream>
using namespace std;//1 分解年月日
//2 年分365、366天,月分29、30、31天
//3 数据比大小,小的做加法int specialYear(int x){if(x % 4 == 0 && x % 100 != 0)return 1;else return 0;
}int main(){int data1, data2;int y1, y2, m1, m2, d1, d2;//4 二维数组,巧妙地把月份和年份联结起来int month[13][2] = {{-1,-1}, {31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31},{30, 30},{31, 31}, {30, 30}, {31, 31}};while(scanf("%d%d", &data1, &data2) != EOF){if((data1 - data2) < 0){int temp = data1;data1 = data2;data2 = temp;}d1 = data1 % 100, m1 = (data1 / 100) %100, y1 = data1 / 10000;d2 = data2 % 100, m2 = (data2 / 100) %100, y2 = data2 / 10000;int count = 0;while(!(y1 == y2 && m1 == m2 && d1 == d2)){d2++;count++;if(d2 == month[m2][specialYear(y2)] + 1){m2++;d2 = 1;if(m2 == 13){m2 = 1;y2++;}} }printf("%d\n", count);}return 0;
}
05 进制转换
对一个 P 进制的数,如果要转换为 Q 进制,需要分为两步:
① 将 P 进制数 x 转换为十进制数 y。
int x, P;
scanf("%d%d", &x, &P);int y = 0, product = 1;
while(x != 0){y = y + (x % 10) * product;x = x / 10;product = product * P;
}
② 将十进制数 y 转换为 Q 进制数 z。
采用 “除基取余法”。每次将待转换数 y 除以 Q,得到的余数作为低位存储,得到的商继续除以 Q 并重复上述操作,最后商为 0 时,将所有位从高到底输出得到 z。
int Q;
scanf("%d", &Q);int z[40], i = 0;
//如果十进制数y恰好等于0,那么使用while语句会使循环直接跳出,而非存放z[0]=0
do{z[i] = y % Q;y = y / Q;i++;
}while(y != 0);while(i != -1){printf("%d", z[i]);i--;
}
Ⅰ D 进制的 A+B

#include <iostream>
using namespace std;int main(){int A, B, D;scanf("%d%d%d", &A, &B, &D);int C = A + B;//除基取余法int num[40], i = 0;do{num[i++] = C % D;C /= D;}while(C != 0);while(i != -1){printf("%d", num[--i])}return 0;
}
06 字符串处理
Ⅰ 回文串

#include <iostream>
using namespace std;int main(){char str[255];gets(str);int len = strlen(str); //1 字符串长度strlen()for(int i = 0; i < (len / 2); i++){if(str[i] != str[len - 1 - i]){ printf("NO.");}}if(i == len / 2){printf("Yes.")}return 0;
}
Ⅱ 说反话

#include <iostream>
using namespace std;int main(){char str[80], word[80][80] = {(0, 0)};while(gets(str) != EOF){int m = 0, n = 0;for(int i=0; i<strlen(str); i++){if(str[i] != ' '){word[m][n++] = str[i];}else{word[m][n] = '\0'; //1 末尾是结束符\0m++;n = 0;}}while(m != 0){puts(word[m--]);printf(" ");}//2 最后一个单词之后输出空格会导致 “格式错误”puts(word[0]);}return 0;
}
相关文章:
算法笔记 02 —— 入门模拟
本系列为胡凡编著的算法笔记当中代码部分的精简版整理,笔者也在同时准备Leetcode刷题和实习面试,希望为有一定编码和数据结构基础的同学提供一份系统型的参考,以方便遗忘时的算法查阅、期末复习总览以及C学习参照。 目录 01 简单模拟 Ⅰ害…...
PyTorch 源码学习:从 Tensor 到 Storage
分享自己在学习 PyTorch 源码时阅读过的资料。本文重点关注 PyTorch 的核心数据结构 Tensor 的设计与实现。因为 PyTorch 不同版本的源码实现有所不同,所以笔者在整理资料时尽可能按版本号升序,版本号见标题前[]。最新版本的源码实现还请查看 PyTorch 仓…...
uniapp 使用 鸿蒙开源字体
uniapp vue3 使用 鸿蒙开源字体 我的需求是全局使用鸿蒙字体。 所以: 0. 首先下载鸿蒙字体: 鸿蒙资源 下载后解压,发现里面有几个文件夹: 字体名称说明Sans默认的鸿蒙字体,支持基本的多语言字符(包括字…...
LabVIEW多电机CANopen同步
核心问题与解决方案 通信层配置 节点ID与波特率冲突问题:在多电机系统中,节点ID重复或波特率不匹配常导致通信中断或数据丢失。案例:某3轴贴片机因步科驱动器的默认节点ID均为1,触发了总线仲裁错误。解决方案:通过配置…...
每日定投40刀BTC(2)20250209 - 20250212
行路吟 青山叠叠水迢迢, 步履虽艰志未消。 莫问前程几多苦, 长风破浪自逍遥。...
【LeetCode Hot100 子串】和为 k 的子数组、滑动窗口最大值、最小覆盖子串
子串 1. 和为 k 的子数组题目描述解题思路主要思路步骤 时间复杂度与空间复杂度代码实现 2. 滑动窗口最大值题目描述解题思路双端队列的原理:优化步骤: Java实现 3. 最小覆盖子串题目描述解题思路滑动窗口的基本思路:具体步骤:算法…...
某虚拟页式存储管理系统中有一个程序占8个页面,运行时访问页面的顺序是1,2,3,4,5,3,4,1,6,7,8,7,8,5。假设刚开始内存没有预装入任何页面。
某虚拟页式存储管理系统中有一个程序占8个页面,运行时访问页面的顺序是1,2,3,4,5,3,4,1,6,7,8,7,8,5。假设刚开始内存没有预装入任何页面。 (1) 如果采用LRU调度算法,该程序在得到4块内存空间时,会产生多少次缺页中断?请给出详细…...
傅里叶公式推导(三)
文章目录 周期 2L周期T 周期 2L 周期 T 2 L T2L T2L 的傅里叶变换 即 f ( t ) f ( t 2 L ) f(t) f(t2L) f(t)f(t2L) xt2 π \pi π 2 L 2L 2L 原公式 f ( x ) a 0 2 ∑ n 1 ∞ [ a n cos n x b n sin n x ] a 0 1 π ∫ − π π f ( x ) d x a n 1 π ∫…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_time_update函数
定义在 src\core\ngx_times.c 中 ngx_time_init 函数后面 void ngx_time_update(void) {u_char *p0, *p1, *p2, *p3, *p4;ngx_tm_t tm, gmt;time_t sec;ngx_uint_t msec;ngx_time_t *tp;struct timeval tv;if (!ngx_trylock(&ngx…...
老牌系统工具箱,现在还能打!
今天给大家分享一款超实用的电脑软硬件检测工具,虽然它是一款比较“资深”的软件,但依然非常好用,完全能满足我们的日常需求。 电脑软硬件维护检测工具 功能强大易用 这款软件非常贴心,完全不需要安装,直接打开就能用…...
mysql error1449解决方法
MySQL Error 1449 错误信息为 “The user specified as a definer (userhost) does not exist”,意思是定义者(创建存储过程、函数、触发器等数据库对象时指定的用户)在当前系统中不存在,从而导致无法正常使用这些对象。以下是针对…...
Notepad++ 中删除所有以 “pdf“ 结尾的行
Notepad 中删除所有以 “pdf” 结尾的行 操作步骤 1.打开文件: 在 Notepad 中打开你需要处理的文本文件。 2.打开查找和替换对话框: 按快捷键 Ctrl F,打开“查找和替换”对话框。 3.启用正则表达式模式: 在对话框的底部…...
归并排序 和 七大算法的总结图
目录 什么是递归排序: 图解: 递归方法: 代码实现: 思路分析: 非递归方法: 思路: 代码实现: 思路分析: 什么是递归排序: 先将数据分解成诺干个序列࿰…...
嵌入式硬件篇---原码、补码、反码
文章目录 前言简介八进制原码、反码、补码1. 原码规则示例问题 2. 反码规则示例问题 3. 补码规则示例优点 4. 补码的运算5. 总结 十六进制原码、反码、补码1. 十六进制的基本概念2. 十六进制的原码规则示例 3. 十六进制的反码规则示例 4. 十六进制的补码规则示例 5. 十六进制补…...
评估多智能体协作网络(MACNET)的性能:COT和AUTOGPT基线方法
评估多智能体协作网络(MACNET)的性能 方法选择:选择COT(思维链,Chain of Thought)、AUTOGPT等作为基线方法。 COT是一种通过在推理过程中生成中间推理步骤,来增强语言模型推理能力的方法,能让模型更好地处理复杂问题,比如在数学问题求解中,展示解题步骤。 AUTOGPT则是…...
洛谷题目: P2398 GCD SUM 题解 (本题较难,省选-难度)
题目传送门: P2398 GCD SUM - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 前言: 本题涉及到 欧拉函数,素数判断,质数,筛法 ,三大知识点,相对来说还是比较难的。 本题要求我们计算 …...
kubernetes-cni 框架源码分析
深入探索 Kubernetes 网络模型和网络通信 Kubernetes 定义了一种简单、一致的网络模型,基于扁平网络结构的设计,无需将主机端口与网络端口进行映射便可以进行高效地通讯,也无需其他组件进行转发。该模型也使应用程序很容易从虚拟机或者主机物…...
AI Agent有哪些痛点问题
AI Agent有哪些痛点问题 目录 AI Agent有哪些痛点问题AI Agent领域有哪些知名的论文缺乏一个将智能多智能体技术和在真实环境中学习的两个适用流程结合起来的统一框架LLM的代理在量化和客观评估方面存在挑战自主代理在动态环境中学习、推理和驾驭不确定性存在挑战AI Agent领域有…...
使用Java爬虫获取京东JD.item_sku API接口数据
在电商领域,商品的SKU(Stock Keeping Unit)信息是运营和管理的关键数据。SKU信息包括商品的规格、价格、库存等,对于商家的库存管理、定价策略和市场分析至关重要。京东作为国内领先的电商平台,提供了丰富的API接口&am…...
华为云+硅基流动使用Chatbox接入DeepSeek-R1满血版671B
华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 硅基流动 1.1 注册登录 1.2 实名认证 1.3 创建API密钥 1.4 客户端工具 OllamaChatboxCherry StudioAnythingLLM 资源包下载: AI聊天本地客户端 接入Chatbox客户端 点击设置 选择SiliconFloW API 粘贴1.3创…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
