算法常用思路总结
思路
- 1. 求数组中最大最小值
- 思路
- 代码
- 2. 计算阶乘
- 思路:
- 代码:
- 3. 得到数字的每一位
- 思路
- 代码
- 4. 计算时间类型
- 5. 最大公约数、最小公倍数
- 6. 循环数组的思想
- 题目:猴子选大王
- 代码
- 补充
- 经典例题
- 1. 复试四则运算
- 题目内容
- 题解
- 2. 数列求和
- 题目内容
- 题解
1. 求数组中最大最小值
思路
把数组中下标为0的值,先设置为最大(最小值),然后遍历数组,如果比它大(小)就更新。
代码
ElementType Max( ElementType S[], int N )
{ElementType maxNum=S[0];for(int i = 1;i<N;i++)if(maxNum<S[i])maxNum=S[i];return maxNum;
}
2. 计算阶乘
思路:
使用递归,把大问题分解为小问题
代码:
int Factorial(int n){if(n==0)return 1;return n*Factorial(n-1);
}
3. 得到数字的每一位
思路
通过不断的模以10,然后再除以10,不断循环,可以把得到每一位存放到数组里面(灵活处理)。
代码
// 一种表达
while(number){array[number%10]++; //使用辅助数组记录每个位出现的次数number/=10;}// 存放每一位在数组中
while(number){array[i++]=number%10; //使用辅助数组记录每位number/=10;}// 判断某一位出现了几次while(number){if(number%10==D)count++;number/=10;}
4. 计算时间类型
思路:可以统一转为分钟之后,统一处理。
time=hour*60+mintue
5. 最大公约数、最小公倍数

// 最大公约数
int gcd(int a,int b){if(b == 0)return a;return gcd(b,a%b);
}// 最小公倍数
int lcm(int a, int b) {return (a * b) / gcd(a, b);
}
6. 循环数组的思想
题目:猴子选大王
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?
代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>int main() {int i, N, arr[1000] = {0}, count=0;scanf("%d", &N);// 存入数组for (i = 0; i < N; i++)arr[i] = i+1;i = 0;while (1) {if (arr[(i + N) % N] != 0) {count++;}if (count % 3 == 0)arr[(i + N) % N] = 0;if (count == 3 * N-2) {printf("%d", arr[(i + N) % N]);break;}i++;}return 0;
}
补充
经典例题
1. 复试四则运算
题目内容
本题要求编写程序,计算2个复数的和、差、积、商。
输入格式:
输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。
输出格式:
分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。
题解
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>int main() {double a1, b1, a2, b2, a[4], b[4];char c[4] = { '+','-','*','/' };scanf("%lf %lf %lf %lf", &a1, &b1, &a2, &b2);a[0] = a1 + a2; b[0] = b1 + b2;a[1] = a1 - a2; b[1] = b1 - b2;a[2] = a1 * a2 - b1 * b2; b[2] = b1 * a2 + b2 * a1;a[3]= (a1 * a2 + b1 * b2) / (pow(a2, 2) + pow(b2, 2));b[3]= (b1 * a2 - a1 * b2) / (pow(a2, 2) + pow(b2, 2));for (int i = 0; i < 4; i++) {if (fabs(a[i]) > 0.05 && fabs(b[i]) > 0.05) {printf("(%.1lf%+.1lfi) %c (%.1lf%+.1lfi) = %.1lf%+.1lfi", a1, b1,c[i], a2, b2, a[i], b[i]);}else if (fabs(b[i]) > 0.05) {printf("(%.1lf%+.1lfi) %c (%.1lf%+.1lfi) = %.1lfi", a1, b1, c[i], a2, b2, b[i]);}else if (fabs(a[i]) > 0.05) {printf("(%.1lf%+.1lfi) %c (%.1lf%+.1lfi) = %.1lf", a1, b1,c[i], a2, b2, a[i]);}else {printf("(%.1lf%+.1lfi) %c (%.1lf%+.1lfi) = %.1lf", a1, b1, c[i],a2, b2, 0);}if(i!=3)printf("\n");}return 0;
}
2. 数列求和
题目内容
给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。
输入格式:
输入数字A与非负整数N。
输出格式:
输出其N项数列之和S的值。
题解
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<math.h>int main() {double sum = 0, item = 0;int A, N;scanf("%d %d",&A,&N);for (int i = 0; i < N; i++) {// 和之前的每一项计算不太一样item+= A * pow(10, i);sum += item;}printf("%.lf", sum);return 0;
}相关文章:
算法常用思路总结
思路 1. 求数组中最大最小值思路代码 2. 计算阶乘思路:代码: 3. 得到数字的每一位思路代码 4. 计算时间类型5. 最大公约数、最小公倍数6. 循环数组的思想题目:猴子选大王代码 补充经典例题1. 复试四则运算题目内容题解 2. 数列求和题目内容题…...
Leetcode 3016. Minimum Number of Pushes to Type Word II
Leetcode 3016. Minimum Number of Pushes to Type Word II 1. 解题思路2. 代码实现 题目链接:3016. Minimum Number of Pushes to Type Word II 1. 解题思路 这道题的话思路其实还是蛮简单的,显然我们的目的是要令对给定的word在键盘上敲击的次数最小…...
node.js如何将webp转jpg图片
在Node.js中,可以使用一些库来实现将WebP图像转换为JPEG。一个常用的库是sharp,它是一个快速、高效的图像处理库。以下是一个简单的Node.js脚本示例,演示如何使用sharp库将WebP转换为JPEG: 首先,确保已经安装了sharp库…...
达梦数据库 忘记 SYSDBA 密码 处理方法
DM 提供数据库身份验证模式、基于操作系统的身份验证模式、外部身份验证模式和 UKEY 身份验证模式来保护对数据库访问的安全。数据库身份验证模式需要利用数据库口令, 即在创建或修改用户时指定用户口令,用户在登录时输入对应口令进行身份验证;基于操作 …...
SpringBoot ES 重建 Mapping
SpringBoot ES 重建 Mapping 1 复制数据2 删除老索引3 重建索引4 复制回数据 1 复制数据 POST http://elastic:123456127.0.0.1:9200/_reindex{"source": {"index": "老索引名称"},"dest": {"index": "备份索引名称&q…...
【51单片机】矩阵按键
0、前言 参考:普中 51 单片机开发攻略 1、硬件 2、软件 main.c #include <reg52.h> #include <intrins.h> #include "delayms.h"typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; #define GPIO_KEY P1 #d…...
Redis- AOF刷盘策略
在Redis中,appendfsync everysec 是一个与持久化相关的配置选项,它属于 Redis 的 AOF(Append Only File)持久化策略的一部分。 Redis支持两种主要的数据持久化方式:RDB(快照)和AOF(…...
标量、向量、矩阵和张量的区别?
标量、向量、矩阵和张量是数学和物理学中常用的概念,它们在多维数据表示和处理中扮演着关键角色。下面是这些概念的基本区别: 标量(Scalar): -标量是单个数字,用于表示单一的量。 -它没有方向。 -在数学中࿰…...
【51单片机】动态数码管
0、前言 参考: 普中51单片机开发攻略–A2.pdf 1、数码管介绍 上一章我们主要是介绍一位数码管的内部结构及控制原理。下面我们再来介 绍下多位数码管及动态显示原理的相关知识。 1.1 多位数码管简介 2、74HC245 和 74HC138 芯片介绍 2.1 74HC245 芯片简介 2.2 7…...
Webpack5入门到原理22:提升打包构建速度
HotModuleReplacement 为什么 开发时我们修改了其中一个模块代码,Webpack 默认会将所有模块全部重新打包编译,速度很慢。 所以我们需要做到修改某个模块代码,就只有这个模块代码需要重新打包编译,其他模块不变,这样…...
EXCEL VBA获取幸运数字号码
EXCELVBA获取幸运数字号码 以下就是VBA幸运号码产生的程序,复制粘贴到VBA代码框即可运行 Option Base 1 Sub 幸运号码()Dim n As Integer, i As Integer, j As IntegerDim l() As Integern Application.InputBox("请输入需要产生幸运号码的数量:…...
【标准IO】fseek函数、ftell函数、fflush函数、getline函数
目录 fseekftellrewindfflushgetline 橙色 当你在文件中写入了10个字符后,又想把这10个字符读出来,该怎么做呢?因为有文件操作符指针的存在,此时该指针已经指在了这10个字符末尾,所以需要把该指针重定向,这…...
VSCODE使用CMAKE显示命令无法找到
背景:使用了code server,安装CMAKE和CMAKE TOOLS,但是通过ctrlshiftp打开命令面板,运行随便一个cmake指令,都出现了指令无法找到。具体为“命令"CMake: 配置"导致错误 (command ‘cmake.configure’ not fou…...
【SpringCloud】微服务框架后端部署详细过程记录20240119
前言:前两天公司接到客户提供的一个微服务框架,导师让我在本地部署验证一下该框架的可用性,借此机会记录一下微服务项目的一个基本部署流程,仅供学习参考,如有不足还请指正! 文件结构 提供的压缩文件共包含…...
《设计模式的艺术》笔记 - 桥接模式
介绍 桥接模式将抽象部分与其实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体模式或接口模式 实现 myclass.h // // Created by yuwp on 2024/1/12. //#ifndef DESIGNPATTERNS_MYCLASS_H #define DESIGNPATTERNS_MYCLASS_H#…...
Redis高并发分布式锁
目录 场景描述 订单扣减场景举例 代码调整1 代码调整2 代码调整3 redisson锁续命核心代码 场景描述 订单扣减场景举例 //首先在redis中set stock 300 RequestMapping("/deduct_stock") public String deductStock() {int stock Integer.parseInt(stringRedi…...
组件开发遇到的问题(vue的问题)
组件的开发和引用 <template><div class"xx">组件</div> </template> <script>export default {name: viewMore,components: {},data() {return {}}} </script> <style scoped>可以定义组件都有的样式 </style> …...
vue3前端开发,感受一下组合式api和VUE2选项式的差异
vue3前端开发,感受一下组合式api和VUE2选项式的差异!今天开始,正式开始,进入学习Vue3的内容。以后代码,案例分享,都会采用组合式api的模式为大家做展示。 今天是第一节,带大家感受一下,Vue3的组…...
电梯调度问题文献阅读
电梯调度问题文献阅读 文章目录 电梯调度问题文献阅读[toc]文献阅读1. 陈纪龙,孟洪兵,吴刚等.六层电梯模拟系统的研究与实现[J].伊犁师范学院学报(自然科学版),2014,8(01):57-62.2. 陈福兰,杜虹.浅析电梯并联运行的几种调度方法[J].装备制造技术,2012,(10):178-180190.3. 马春江…...
文心一言 VS 讯飞星火 VS chatgpt (183)-- 算法导论13.4 7题
七、用go语言,假设用 RB-INSERT 将一个结点 x 插入一棵红黑树,紧接着又用 RB-DELETE 将它从树中删除。结果的红黑树与初始的红黑树是否一样?证明你的答案。 文心一言: 首先,我们需要明确RB-INSERT和RB-DELETE的基本操…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
