输出数组中大于等于左边所有数且小于等于右边所有数的元素

Question:

一个int数组,;一面数据无任何限制,要求求出所有这样的数a[i],其左边数数都小于等于它,右边的数都大于等于它

 1 void smallLarge(int *arr,int n)
 2 {
 3     int *rightMin=new int[n];  //记录原始数组arr[i]右边(包括自己)的最小值
 4     int leftMax;  //记录arr[i]左边(包括自己)的最大值
 5     rightMin[n-1]=arr[n-1];
 6     for(int i=n-2;i>=0;i--)
 7     {
 8         if(rightMin[i+1]>arr[i])
 9             rightMin[i]=arr[i];
10         else
11             rightMin[i]=rightMin[i+1];
12     }
13     leftMax=arr[0];
14     for(int i=0;i<n;i++)
15     {
16         if(arr[i]>=leftMax)
17             leftMax=arr[i];
18         if(leftMax==rightMin[i])   //该数是左边数中的最大数,是右边数中的最小数
19             cout<<arr[i]<<" ";
20     }
21 }
时间: 2024-12-17 12:09:35

输出数组中大于等于左边所有数且小于等于右边所有数的元素的相关文章

C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">有一个整形数组a,有10个元素,要求输出数组中的全部元素</span> 解题思路:引用数组中各元素的值有3种方法:1.下标法,如a[3];2.通过数组名计算数组元素的地址,找出元素的值 3.用指针变量指向数组元素. //用指针变量指向数组元素 #include <std

编程题:指针输出数组的灵活性。功能:输出数组中全部元素

#include<stdio.h> void main() { int *p,i; int a[5]={1,2,3,4,5}; p=a; printf("\n"); for(;p<a+5;p++) printf("%d\t",*p); } 编程题:指针输出数组的灵活性.功能:输出数组中全部元素,布布扣,bubuko.com

编程题:展示指针与数组的输出方式,功能:输出数组中的全部元素

#include<stdio.h> void main() { int *p,i; int a[5]={1,2,3,4,5}; p=a; for(i=0;i<5;i++) printf("%d\t",a[i]); printf("\n"); for(i=0;i<5;i++) printf("%d\t",*(p+i)); } 编程题:展示指针与数组的输出方式,功能:输出数组中的全部元素,布布扣,bubuko.com

javascript如何随机输出数组中的内容

javascript如何随机输出数组中的内容: 有时候我们可能需要从数组中随机抽出一项内容,下面就通过一段代码实例介绍一下如何实现此效果. 代码如下: <script type="text/JavaScript"> var theArray=new Array(); theArray[0]="蚂蚁部落"; theArray[1]="蚂蚁部落一"; theArray[2]="蚂蚁部落二"; theArray[3]=&

遍历输出且输出数组中最大的值

1 int myarray[] = new int[]{44,22,301,54,5,88,7,48,9,10}; 2 3 //遍历并输出所有的数 4 for(int x :myarray) 5 { 6 System.out.print(x+" "); 7 } 8 System.out.println(); 9 //利用foreach来写输出数组中最大的数 10 int Max = myarray[0]; 11 12 for(int x:myarray) 13 { 14 if(Max&

随机输出数组中的值(一位园友问的)

1,随机输出数组中所有的值(不重复) static void Main(string[] args) { int[] array = { 1, 2, 3, 4, 5 }; int[]str=new int[array.Length]; Random r = new Random(); for (int i = 0; i < array.Length; i++) { int index = r.Next(array.Length); //判断是否已经包含 if (str.Contains(arra

华为OJ平台试题 ——字符串:输出数组中重复的数组

<pre name="code" class="cpp">/* * 题目:输出数组中重复出现的数组(0-9) * * 输入:输入一串数字,中间以逗号隔开,如3,2,2,3,5,6,7,8,9 * 输出:输出数组中重复出现的数字(数字间以空格隔开),输出顺序按原数组中的先后顺序,输出3,2 */ #include<stdio.h> #include<string.h> #define N 256 /* * 定义一个结构体:数字和数字

4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /* * 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台. (2)把数组中的数字放到当前文件夹的number.txt文件中 */ public class Test4 { public static void main

数据结构与算法-字符串输出数组中的最大值

输出数组a中的最大值及其下标 #include<stdio.h> #define N 5 int main() { int a[N],i,max,t; for(i=0;i<N;i++) scanf("%d",&a[i]); max=a[0]; //把数组的第一个数赋值给max,此时对应的下标为0 t=0; for(i=1;i<N;i++) //从数组的第二个数开始判断,max是否是最大值 if(max<a[i]){ //不是最大值,就把该值赋值给m