求最大、小值和查找

二分法解决最大值最小化问题 问题描述:把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)的最大值最小是多少?例如序列1 2 3 2 5 4划分为3个子序列的最优方案为 1 2 3 | 2 5 | 4,其中S(1),S(2),S(3)分别为6,7,4,那么最大值为7;如果划分为 1 2 | 3 2 | 5 4,则最大值为9,不是最小。 阅读详情

1.前言

在我们做练习里经常看到关于求最大最小值和排序查找的题目,今天我教大家用普通的代码来写一写吧!

2.求最大最小值

循环来求

#include <iostream>
using namespace std;
int main(){
    int num[100];
    int n;
    cin >> n;
    for (int i =0;i < n; i++){
    	cin >> num[i];
	}
	int big = 0,small = 100;	//Big的赋值 是最小的底线,small的赋值是最大的底线. 
    for (int i =0;i < n; i++){
    	if (num[i] > big){
    		big = num[i];
		}
		if (num[i] < small){
    		small = num[i];
		}
	}
	cout << big << " " << small;
    return 0;
}

先输出最大值后输出最小值。

3.查找

查找你可以按顺序查找(就是遍历),时间复杂度太高,完全凭运气。如果数据有很多就不建议用这种方法。但是这个方法不需要让序列排序。

你还可以用二分查找,但是需要让序列排个序.

二分

#include <iostream>
using namespace std;
int main(){
	int n,a[100];
	cin >> n;
	for (int i =0; i < n; i++){
		cin >> a[i];
	}
	int j;
	cin >> j;
	int L = 0,R = n-1,top = -1;
	while (L < R){
		int m = (L+R)/2;
		if (a[m] == j){
			top = m;
			break;
		}
		if (a[m] > j){
			R = m-1;
		}
		if (a[m] < j){
			L = m+1;
		}
	}
	cout << top;
	return 0;
}

输入三行第一个是数组长度第二个是数组第三个是要查找的元素.

最后输出一个值是目标元素的位置.

遍历

#include <iostream>
using namespace std;
int main(){
	int n,a[100];
	cin >> n;
	for (int i =0; i < n; i++){
		cin >> a[i];
	}
	int j;
	cin >> j;
	for (int i =0; i < n; i++){
		if (a[i] == j){
            cout << i;
            return 0;
        }

	}
	cout << "没有";
	return 0;
}

跟上一个效果一样

有bug的话提醒我一下

二分查找问题全集OK xxx 阅读详情

相关推荐

3.Trie树--求最大异或对

关于Trie树的一个用法,求最大异或对

m0_72389201的博客 385

C/C++二分查找

二分查找首先需要该组数是有顺序的(一般是升序),二分查找的关键在于确定二分查找的范围和L以及R改变的条件。 实数类型 的二分查找 http://acm.nefu.edu.cn/problemShow.php?problem_id=1303 #include <bits/stdc++.h> using namespace std; const double p=acos(-1.0)...

iwy002的博客 351

手把手教你用Silvaco Atlas复现GaN蓝光LED仿真:从网格划分到光谱分析全流程避坑

本文详细介绍了如何使用Silvaco Atlas进行GaN蓝光LED仿真,从网格划分到光谱分析的全流程避坑指南。重点讲解了网格划分技巧、材料参数设置、极化效应处理以及结果分析方法,帮助用户快速掌握半导体器件仿真技术,提升研发效率。

weixin_42552716的博客 229

二分法解数组分段和最大值最小问题

问题描述 给定一个数组,和一个值k,数组分成k段。要求这k段子段和最大值最小。求出这个值。 问题分析 这里采用二分的思想来解决问题。 首先求出数组中的最大值max与数组所有值的和sum,则所求值必在max与sum之间(可以自己推理),接下来利用二分思想,将max与sum命为l与r,并不断测试中值,不断二分,最后得到所求值 具体代码 #include<bits/stdc++.h> #include<stdio.h> #define maxn 1005000 using names

a884322916的博客 1548

手把手教你用Ubuntu Desktop搭建个人L2TP服务器,手机电脑都能连(Network Manager配置详解)

本文详细介绍了在Ubuntu Desktop上使用Network Manager图形化配置L2TP服务器的方法,实现手机、电脑等多设备安全连接。从环境准备、图形界面设置到各平台客户端配置,提供一站式解决方案,并包含常见问题排查与安全增强措施,帮助用户快速搭建个人远程访问网络。

weixin_30555125的博客 124

Type-C转DP1.4转C双向互传转接线方案

Type-C转DP双向互转方案的核心在于利用Type-C接口中的Alt Mode(交替模式)功能。通过利用Type-C接口的Alt Mode功能,该方案实现了Type-C接口与DP接口之间的双向互传,极大地丰富了用户的视觉体验。在选择Type-C转DP双向互转方案时,用户需要关注兼容性、性能需求、线缆长度和品牌等因素,以确保获得最佳的传输质量和使用体验。因此,Type-C转DP双向互转方案应运而生,旨在实现Type-C接口与DP接口之间的无缝连接,满足用户对高效能和高清晰度视频传输的需求。

m0_70875024的博客 4979

c++二分算法

hello😄 又来发算法了💡 这次来发一下「二分」 如果你学过二分没很长时间,你可能已经倒吸一口凉气了 不要想复杂,一步一步来

我的博客 4624

GPS数据处理必备:IGS精密星历下载与使用全攻略(附武汉大学/CDDIS/CODE/GFZ地址)

本文为GPS/GNSS数据处理者提供了IGS精密星历的完整下载与使用指南。详细解析了最终、快速、超快速三种精密星历产品的区别与选择策略,并手把手教学如何从武汉大学、CDDIS、CODE、GFZ四大主流数据中心高效获取数据,涵盖文件命名规则解析及自动化下载脚本,助力科研与工程应用。

weixin_29234239的博客 684

求最大最小值cpp

【输入形式】输入的第一行为一个正整数n(1≤n≤3),接下来的一行为n个整数,表示数组的元素。对于一个具有 n 个元素的数组a, 输出它的最大值和最小值。【输出形式】输出为两个数,分别对应以上的输出。

2301_80026788的博客 266

Ollama本地大模型部署指南:从核心原理到实战避坑

大语言模型(LLM)作为人工智能领域的核心技术,通过海量数据训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制处理序列数据,在文本生成、代码编写和对话系统等场景展现出巨大价值。随着开源模型的普及,本地部署成为关注焦点,它解决了数据隐私和定制化需求,但面临环境配置和资源管理的挑战。Ollama作为开源工具,通过封装模型格式和统一API,简化了本地部署流程,支持GPU加速和性能调优,让开发者能够快速集成到IDE和自动化脚本中,实现高效的本地AI应用部署。

weixin_30915951的博客 453

RNA-seq分析:Step8(富集分析)

RNA-seq富集分析是一种用于分析基因表达数据中特定基因或通路是否富集的分析方法。其基本思想是比较不同基因对应的转录本/基因之间的表达差异及其对应的基因注释信息,通过统计学方法评估差异的显著性,从而确定是否存在某些特定的功能通路或基因集合富集的情况。常用的RNA-seq富集分析工具包括GOseq、KEGG(KEGG enrichment analysis)、DAVID(Database for Annotation, Visualization and Integrated Discovery)等。这

沉香best的博客 3634

算法练习(二分查找、快速求最大值最小值、最短同度子序列、最长上升子序列、限和最长子序列、数组循环右移、折半查找的实现、最大子列和问题淘汰竞赛)

算法练习(二分查找、快速求最大值最小值、最短同度子序列、最长上升子序列、限和最长子序列、数组循环右移、折半查找的实现、最大子列和问题淘汰竞赛)

sjsn_z的博客 416

RH850从0搭建Autosar开发环境系列讲解 - 总目录

Davinci Autosar实战开发从0构建开发能力。OS,COM,DCM,BSWMM,ECUM,VLINK,XCP,MEMMAP等模块配置,带你熟悉运行的autosar代码,包括MICROSAR的启动运行,使用GreenHills生成运行的hex。

weixin_42412049的博客 1万+

数组的最大美丽值(区间最大重叠次数)

给你一个下标从开始的整数数组nums和一个整数k。inums[i]数组的定义为数组中由相等元素组成的最长子序列的长度。对数组nums执行上述操作任意次后,返回数组可能取得的美丽值。你能对每个下标执行此操作。数组的定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。3在这个示例中,我们执行下述操作:- 选择下标 1 ,将其替换为 4(从范围 [4,8] 中选出),此时 nums = [4,4,1,2]。

m0_52238102的博客 506

基于LLM【M3】驱动的自动化攻击智能体AK(受控使用)

摘要:文章实测了基于大模型的目标驱动型云攻击智能体,展示攻击者仅需输入业务目标(如"窃取BigQuery数据")即可自动完成SSRF、令牌解析、数据导出等全链条攻击。研究发现:(1)攻击编排范式已从固定脚本升级为自适应路径;(2)传统基于IOC的防御与新型攻击存在结构性错位;(3)防御需转向元数据加固、跨服务行为序列检测和AI驱动的紫队演练。实验在授权靶场使用合成数据,验证了攻击智能体"监督者模型+专业执行组"的协作模式,强调防御体系需从单点检测升级为攻击链理解能力。

云上笛暮 307

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java中random方法取值范围_java中最值的求法,你可能忽略了这种方法了!

对一批数据进行排序,然后找出其中的最大值或最小值,这是基本的数据结构知识。在Java中我们可以通过编写算法的方式,也可以通过数组先排序再取值的方式来实现。下面以求最大值为例,解释一下多种算法。自行实现,快速查找最大值先来看用快速查找法取最大值的算法,其代码如下: 这是我们经常使用的最大值算法,也是速度最快的算法。它不要求排序,只要遍历一遍数组即可找出最大值。先排序,后取值对于求最大值,也...

weixin_39998521的博客 315

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

二叉排序树的应用(求树的高度、树中最大元素的值、查找某个值)

本文章介绍了二叉排序树的三种应用:求二叉排序树的高度,树中最大元素的值是多少,查找树中是否有我们需要的某个值。

yohe12的博客 1214

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【求两个数异或的最大值】01字典树求解

一、题目 求 n 个非负数中任意 2 个的异或值的最大值。n 数量级为 10^5。分析:直接暴力求解一定会超时。但是一个字符串可以看成一个32位的01字符串,因此可以建立字典树,建立好树以后对于任意非负整数x,只要先求反,然后顺着树贪心查找就行。找到0 or 1就继续,找不到就忽略继续查找。 二、字典树介绍 字典树又称单词查找树,Trie 树,是一种树形结构,是一种哈希树的变种。

天蓝 3285

java中数组的,求最值,拆入,删除。

java中数组的,求最值,拆入,删除。 /** * * @param arr 数组 * @return 返回最大值 终止方法的作用,return之后的语句不再执行 */ public static int getMaxElement(int[] arr) { if(arr==null) { System.err.println("数组为null,返回...

HadwinLing 309

【算法题】2779. 数组的最大美丽值

给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k。在一步操作中,你可以执行下述指令:在范围 [0, nums.length - 1] 中选择一个 此前没有选过 的下标 i。将 nums[i] 替换为范围 [nums[i] - k, nums[i] + k] 内的任一整数。数组的 美丽值 定义为数组中由相等元素组成的最长子序列的长度。对数组 nums 执行上述操作任意次后,返回数组可能取得的 最大 美丽值。注意:你 只 能对每个下标执行 一次 此操作。

kangbin825的专栏 943

hdu 1754 I Hate It (线段树入门题、求区间段的最大值)

http://acm.hdu.edu.cn/showproblem.php?pid=1754 线段树入门题:求区间段的最大值 #include "iostream" #include "stdio.h" using namespace std; const int MAX = 200001; int big; struct node { int r, l, max; ...

weixin_34409741的博客 72

一招教你巧用递归解决矩阵最大序列和问题

之前同事问了一道需要点脑洞的算法题,我觉得蛮有意思的,思路可能会给大家带来一些启发,在此记录一下 题目 现有一个元素仅为 0,1 的 n 阶矩阵,求连续相邻(水平或垂直,不能有环)值为 1 的元素组成的序列和的最大值。假设有如下矩阵 则此矩阵连续相邻值为 1 的元素组成的序列和分别为 4, 3,(如图示),可知这个矩阵符合条件的序列和的最大值为 4 解题思路 要算序列和的最大值,我们可以先找出...

448

java map 最大值_Java map取value最大值和最小值

/*** 求Map中Value(值)的最小值** @param map* @return*/public static Object getMinValue(Map map) {if (map == null)return null;Collection c = map.values();Object[] obj = c.toArray();Arrays.sort(obj);return obj[...

weixin_39873208的博客 292

leetcode 1014. Capacity To Ship Packages Within D Days的解法(二分查找)

题目大意:把数组w分成d份,每一份求和并求出和的最大值,返回值为最小的和值。 解法:与leetcode 410的解法一样。 思路: (1)和值的取值范围为[w的最大值,w的所有元素的和],该范围是闭区间; (2)这个范围是给连续递增区间,那么可以采用二分查找来确定; (3)二分的条件:如果按照当前取值,得到的分组数量大于d,那么说明取值小了,需要提高取值,反之,降低取值。 代码如下: ...

dong_beijing的博客 439

【二分查找】[洛谷P1182-数列分段]

题目链接 https://www.luogu.com.cn/problem/P1182 题目描述 对于给定的一个长度为N的正整数数列 A_{1\sim N}A 1∼N ​ ,现要将其分成 MM(M\leq NM≤N)段,并要求每段连续,且每段和的最大值最小。 关于最大值最小: 例如一数列 4\ 2\ 4\ 5\ 14 2 4 5 1 要分成 33 段。 将其如下分段: [4\ 2][4\ 5][1] [4 2][4 5][1] 第一段和为 66,第 22 段和为 99,第 33 段和为 11,和最大值为

高高冷的博客 379

完成顺序表的按值修改、按位置查找、排序、最值、去重

完成顺序表的按值修改、按位置查找、排序、最值、去重

Aungtoin的博客 179
上一篇: 模拟算法.
下一篇: 图像旋转翻转变换
B757-300
博客等级 码龄4年 259粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值