精华内容
下载资源
问答
  • Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:array_...

    Shell 数组

    数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

    与大部分编程语言类似,数组元素的下标由0开始。

    Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

    array_name=(value1 value2 ... valuen)

    实例

    #!/bin/bash

    # author:菜鸟教程

    # url:www.runoob.com

    my_array=(A B "C" D)

    我们也可以使用下标来定义数组:

    array_name[0]=value0

    array_name[1]=value1

    array_name[2]=value2

    读取数组

    读取数组元素值的一般格式是:

    ${array_name[index]}

    实例

    #!/bin/bash

    # author:菜鸟教程

    # url:www.runoob.com

    my_array=(A B "C" D)

    echo "第一个元素为: ${my_array[0]}"

    echo "第二个元素为: ${my_array[1]}"

    echo "第三个元素为: ${my_array[2]}"

    echo "第四个元素为: ${my_array[3]}"

    执行脚本,输出结果如下所示:

    $ chmod +x test.sh

    $ ./test.sh

    第一个元素为: A

    第二个元素为: B

    第三个元素为: C

    第四个元素为: D

    获取数组中的所有元素

    使用@ 或 * 可以获取数组中的所有元素,例如:

    #!/bin/bash

    # author:菜鸟教程

    # url:www.runoob.com

    my_array[0]=A

    my_array[1]=B

    my_array[2]=C

    my_array[3]=D

    echo "数组的元素为: ${my_array[*]}"

    echo "数组的元素为: ${my_array[@]}"

    执行脚本,输出结果如下所示:

    $ chmod +x test.sh

    $ ./test.sh

    数组的元素为: A B C D

    数组的元素为: A B C D

    获取数组的长度

    获取数组长度的方法与获取字符串长度的方法相同,例如:

    #!/bin/bash

    # author:菜鸟教程

    # url:www.runoob.com

    my_array[0]=A

    my_array[1]=B

    my_array[2]=C

    my_array[3]=D

    echo "数组元素个数为: ${#my_array[*]}"

    echo "数组元素个数为: ${#my_array[@]}"

    执行脚本,输出结果如下所示:

    $ chmod +x test.sh

    $ ./test.sh

    数组元素个数为: 4

    数组元素个数为: 4

    展开全文
  • 找出一维数组中重复次数最多元素以及重复的次数 关于数组的算法问题层出不穷,无论是一维数组还是二维数组。此类问题中,简单的、复杂的都有,而且变化很多。 下面从一个一维数组的问题开始。 问题描述:找出...
    找出一维数组中重复次数最多的元素以及重复的次数

    关于数组的算法问题层出不穷,无论是一维数组还是二维数组。此类问题中,简单的、复杂的都有,而且变化很多。
    下面从一个一维数组的问题开始。

    问题描述:找出一维数组中重复次数最多的元素以及重复的次数。
    假设数组的长度为1000 求出数组中重复出现次数最多的元素是什么?重复出现了多少次?
    假定条件:如果出现次数最多的元素多于两个,就随意返回其中一个即可。

    注意这个假设条件很重要。

    问题一:(简单版本)找出一维数组中重复次数最多的元素。如果出现次数最多的元素多于两个,就随意返回其中的一个即可。

    这个问题是最简单的。

    算法设计如下(不考虑算法效率最优的情况):

    public static int majority(int[] arrayDemo) {
            // 设定一个变量result用来保存结果,即一维数组中重复次数最多的元素,初始赋值为-1。
            int result = -1;
            int N = arrayDemo.length;
            // majorityCount 作为计数器来技术,初始赋值为0。
            int majorityCount = 0;
    
            // 遍历数组元素,当i=0时,表示数组中的第一个元素,将arrayDemo[0]赋值给变量V,
            // 设定变量计数器 count 初始值为0。
            // 设定变量 int j=0;
            for (int i = 0; i < N; i++) {
                int V = arrayDemo[i];
                int count = 0;
                // 从arrayDemo[1]开始将数组中的每一个元素与arrayDemo[0]进行比较,如果发现相同的元素,则计数器count加1。
                // 即将从arrayDemo[1]开始后面的每一个元素与arrayDemo[0]进行一次比较。
                // 当外层循环再次循环时,即 i=1时,j=2,重复上述过程。
    
                for (int j = 0; j < N; j++) {
                    if (arrayDemo[j] == V) {
                        count++;
                    }
                }
    
                //完成一次比较之后,如果count的值大于majorityCount,则将count赋值给majorityCount,
                //用于表示出现重复元素的最大次数。并且将该元素赋值给result。
                //majorityCount的意义在于永远保存重复次数最多的元素的重复次数。
                if (count > majorityCount) {
                    majorityCount = count;
                    result = V;
                }
            }
            //返回重复次数最多的数组元素。
            return result;
        }
    问题二:(简单版本)找出一维数组中重复次数最多的元素和重复的次数。
    如果出现次数最多的元素多于两个,就随意返回其中的一个即可。
    /*
         * 算法设计
         * 使用Map的(Key,Value)对来存储数据。
         * Key用来存储重复次数最多的元素;Value用来存储重复的次数。
         * 不考虑重复的情况,即如果重复次数相同的元素,随意返回一个即可。
         */
        public static Map<Integer,Integer> majorityMap(int[] arrayDemo) {
    
            Map<Integer,Integer> map=new HashMap<Integer,Integer>();
    
            int result = -1;
            int N = arrayDemo.length;
            int majorityCount = 0;
    
            for (int i = 0; i < N; ++i) {
                int V = arrayDemo[i];
                int count = 0;
                for (int j = 0; j < N; ++j) {
                    if (arrayDemo[j] == V) {
                        count++;
                    }
                }
    
                if (count > majorityCount) {
                    majorityCount = count;
                    result = V;
                    map.put(result, majorityCount);
                }
            }
    
            return map;
        }
    
    问题三:找出一维数组中每一个元素重复的次数。
    并且将数组中的元素和其重复的次数输出。(不考虑输出顺序)

    算法设计:

    //代码片段
    
    // 定义类级别的 Map 和 一个计数器counterElement
    public static Map<Integer,Integer> countMap=new HashMap<Integer,Integer>();
    public static int counterElement=-1;
    
        //处理方法
        public static void hashInsert(Integer number) {
            if(countMap.containsKey(number)) {
                counterElement=countMap.get(number).intValue();
                countMap.put(number, ++counterElement);
            }else {
                countMap.put(number, 1);
            }
        }
    
    
    // 调用方法中的核心代码如下:
    
            for(int i=0;i<arrayDemo.length;i++) {
                 //遍历数组元素,使用hashInsert()方法处理数组元素
                 hashInsert(arrayDemo[i]);
            }
    
            Set<Integer> elementSet=countMap.keySet();
            Iterator<Integer> elementItx=elementSet.iterator();
            while(elementItx.hasNext()) {
                Integer KEY=(Integer)elementItx.next();
                Integer VALUE=countMap.get(KEY).intValue();
                System.out.println("数组元素: "+KEY+" ,重复次数: "+VALUE);
            }
    
    问题四:找出一维数组中每一个元素重复的次数。
    (1)并且将数组中的元素和其重复的次数,按照数组元素值的升序排列输出输出。(考虑输出顺序)
    (2)按照数组元素重复次数的降序(由高到低)输出。

    自己动手,丰衣足食。

    (完)

    展开全文
  • 题目描述 叠罗汉是个著名的游戏,游戏中个人要站在另个人的肩膀上。为了使叠成的罗汉更稳固...给定个二int的数组actors,每个元素有两个值,分别代表个演员的身高和体重。同时给定演员总数n,请返回最多

    题目描述
    叠罗汉是一个著名的游戏,游戏中一个人要站在另一个人的肩膀上。为了使叠成的罗汉更稳固,我们应该让上面的人比下面的人更轻一点。现在一个马戏团要表演这个节目,为了视觉效果,我们还要求下面的人的身高比上面的人高。请编写一个算法,计算最多能叠多少人,注意这里所有演员都同时出现。
    给定一个二维int的数组actors,每个元素有两个值,分别代表一个演员的身高和体重。同时给定演员总数n,请返回最多能叠的人数。保证总人数小于等于500。
    测试样例:
    [[1,2],[3,4],[5,6],[7,8]],4
    返回:4


    • 思路
      首先按照身高对数组进行排序,然后使用排序后数组按体重寻找最长递增子序列。
    import java.util.*;
    
    public class Stack {
        public int getHeight(int[][] actors, int n) {
            // write code here
            if(n==0||actors==null)
                return 0;
    
           Comparator<int[]> cmp = new Comparator<int[]>() {  
                 @Override  
                 public int compare(int[] a, int[] b) {   
                     return a[0]-b[0];  
                     }                  
                 };         
    
            Arrays.sort(actors, cmp);
            /*for(int i=1;i<n;i++)//冒泡排序
                for(int j=0;j<n-i;j++){
                    if(actors[j][0]>actors[j+1][0]){
                        int[] temp=actors[j];
                        actors[j]=actors[j+1];
                        actors[j+1]=temp;
                    }
                    else if(actors[j][0]==actors[j+1][0]&&actors[j+1][1]<actors[j][1]){                
                            int[] temp=actors[j];
                            actors[j]=actors[j+1];
                            actors[j+1]=temp;                       
                    }
                }*/
            //int num_actors=actors.length;
            int[] dp=new int[n];
            int maxCount = 0;
            for(int i=0;i<n;i++){
                dp[i]=1;
                for(int j=0;j<i;j++){
                    if(actors[j][1]<actors[i][1])
                        dp[i]=dp[i]>dp[j]+1?dp[i]:dp[j]+1;
                        if(dp[i]>maxCount)
                            maxCount=dp[i];
                }
            }       
            return maxCount;        
        }
    }
    展开全文
  • PHP POST 数组限制

    千次阅读 2019-01-27 17:04:57
    今天调个接口,测试批量上传数据。上传数据用的是POST方式,分成个多维数组上传。 但是,问题来了,最多可以批量上传多少条数据?...如果POST个二维数组,每个二维子数组里有五个元素,那么,只能POST200个子...

    今天调一个接口,测试批量上传数据。上传数据用的是POST方式,分成一个多维数组上传。
    但是,问题来了,最多可以批量上传多少条数据?PHP默认POST数据的限制是2M,但是并不代
    表你就可以真的传2M以内的任意长度的数组。

    PHP对输入变量是有限制的。默认php.ini里的max_input_vars的限制是1000.如果POST一个二维数组,每个二维子数组里有五个元素,那么,只能POST200个子数组。那
    么多余的整么办?直接抛掉。。。。。真是简单粗暴。那么抛掉的策略是怎么样的呢?比如我POST上述数组210个,另外还POST一个变量type,那么服务器的$_POST参数里有啥?

    一下数据是通过PHP CURL方式提交的,其他语言提交之后数据顺序不一定不变

    $data['ztype'] = "ztype";
    $data['aber'] = "aber";
    $data['User'] = [];
    for($i=0;$i<290;$i++)
    {
        $data['User'][] = [
            'create_time'=>1,
            'health_action_cat_id' => '5',
            'detail' => '{"distance":44}',
            'uid' => '5089',
            'provider_id'=>$i,
        ];
    }
    

    如果提交的数组是这样的,那么,服务器的$_POST是这样的:

    {
        "ztype":"ztype",
        "aber":"aber",
        "User": [0-198]
    }
    

    那如果顺序变一下呢,

    $data['User'] = [];
    for($i=0;$i<290;$i++)
    {
        $data['User'][] = [
            'create_time'=>1,
            'health_action_cat_id' => '5',
            'detail' => '{"distance":44}',
            'uid' => '5089',
            'provider_id'=>$i,
        ];
    }
    $data['ztype'] = "ztype";
    $data['aber'] = "aber";
    

    服务器的$_POST是这样的:

    {
        "User": [0-199]
    }
    

    额,这个…难怪容易出现诡异的情况。像其他语言(比如java),提交之后数据顺序是不确定的,所以,所以就会出现数据混乱,在获得1000个变量之后,PHP将抛弃后面的输入。如果下一个数组大小加起来已经超过1000,PHP也会果断抛弃…

    展开全文
  • Numpy的介绍与使用

    2020-06-22 14:19:10
    numpy 数组中的元素用的最多是「数值型」元素,平时我们说的一维、二维、三维数组长下面这样子 (对应着线、面、体)。四维数组很难被可视化。 注意一关键字 axis,中文叫「轴」,一数组是多少维度就有多少根轴...
  • 安卓面试问题

    2017-05-03 23:59:23
    安卓技能表:-1 算法: ... - 二维数组二分查找的最优算法,数组元素从左到右从上到下递增 - 一个无序数组怎么找出两和为特定值的数? - 快排后首尾两游标 - 12鸡蛋有一个质量不同,如何只称三次测出
  • 匈牙利算法

    2019-10-08 20:51:51
    你有块棋盘,棋盘上有一些格子已经坏掉了。...broken是个b * 2的二维数组,其中每个元素代表棋盘上每个坏掉的格子的位置。 输出:个整数,代表最多能在棋盘上放的骨牌数。 来源:力扣(LeetCo...
  • leetcode LCP 4. 覆盖

    2020-04-14 22:49:02
    你有块棋盘,棋盘上有一些格子已经坏掉了。...broken是个b * 2的二维数组,其中每个元素代表棋盘上每个坏掉的格子的位置。 输出:个整数,代表最多能在棋盘上放的骨牌数。 示例 1: 输入:n = 2, m = 3...
  • 你有块棋盘,棋盘上有一些格子已经坏掉了。...broken是个b * 2的二维数组,其中每个元素代表棋盘上每个坏掉的格子的位置。 输出:个整数,代表最多能在棋盘上放的骨牌数。 示例 1: 输入:n = 2, m = 3...
  • LeetCode LCP 04 覆盖

    2020-11-03 15:17:18
    broken是个b * 2的二维数组,其中每个元素代表棋盘上每个坏掉的格子的位置。 输出:个整数,代表最多能在棋盘上放的骨牌数。 from typing import * class Solution: def __init__(self): .
  • broken是个b * 2的二维数组,其中每个元素代表棋盘上每个坏掉的格子的位置。 输出:个整数,代表最多能在棋盘上放的骨牌数。 (Python语言与人工智能入门-课程设计的小作业) 具体代码如下: from typing ...
  • 叠罗汉 叠罗汉是个著名的游戏,游戏中个人要站在另个人的肩膀上。为了使叠成的罗汉更...给定个二int的数组actors,每个元素有两个值,分别代表个演员的身高和体重。同时给定演员总数n,请返回最多能...
  • 叠罗汉II

    2019-05-15 19:39:19
    题目描述 叠罗汉是个著名的游戏,游戏中个人要站在另个人的肩膀上。为了使叠成的罗汉更...给定个二int的数组actors,每个元素有两个值,分别代表个演员的身高和体重。同时给定演员总数n,请返回最多...
  • 思路:网上看到不少人用DP,但我这道题是直接用了二树状数组,枚举各个小矩阵的元素和然后找出其中最大的一个值。 #include #include #include using namespace std; //二树状数组 const int ma
  • 题目大意: 给你个7*8的网格,每个网格摆了一张牌,牌通过相邻组合成对应的编号(1到28),问你最多多少种组合并且...dfs列的搜,搜到每列最后一个元素行搜。 代码: #include<bits/stdc++.h> us...
  • 程序员面试金典day23

    2019-06-07 21:27:43
    程序员面试金典day23 叠罗汉是个著名的游戏,游戏中个人要站在另个人的肩膀上。为了使叠成的罗汉更稳固...给定个二int的数组actors,每个元素有两个值,分别代表个演员的身高和体重。同时给定演员总数...
  • 金典——叠罗汉2

    2017-06-25 14:57:14
    题目描述 叠罗汉是个著名的游戏,游戏中个人要站在另个人的肩膀上。为了使叠成的罗汉更稳固,我们应该...给定个二int的数组actors,每个元素有两个值,分别代表个演员的身高和体重。同时给定演员总数n
  • 题目 在个 m*n 的棋盘的每格都放有个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并...首先申请个与题目数组相同大小的二数组res。res中每个元素res[ i ] [ j
  • 题意:给定你个n*m的矩阵,然后每行中可以取个或者多个元素,(每行最多m/2个),然后问你这些数的和在能整除k的情况下的最大的可能值是多少? 数据量不大的情况下,看到最大的这种限制条件,很容易想到dp,但...
  • 提示:可考虑用两个一维数组实现学生成绩和学生信息的存储。 (19)歌手大赛评分 某歌手大赛,共有十评委给选手打分,分数采用百分制,去掉一最高分,去掉一最低分,然后取平均分,得到歌手的最后成绩。 ...
  • def是一个二级指针,它指向的是一个一维数组的指针,数组的元素都是float. (2)double*(*gh)[10]; gh是一个指针,它指向一个一维数组,数组元素都是double*. (3)double(*f[10])(); f是一个数组,f有10个元素,元素都是...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    <br>实验四 综合(课程设计) 内容及步骤: 1、假定一维数组a[n]中的每个元素值均在[0,200]区间内,用C++编写一个算法,分别统计出落在[0,20],[21,50],[51,80],[81,130],[131,200]等各区间内的元素...
  • 1.16.15 pku2002_3432_N个点最多组成多少个正方形(hao) 94 1.16.16 pku1981_单位圆覆盖最多点(poj1981)CircleandPoints 97 1.16.17 pku3668_GameofLine_N个点最多确定多少互不平行的直线(poj3668) 99 1.16.18 求凸...
  • excel的使用

    2012-11-25 17:06:01
    (1)数组和矩阵的定义矩阵不是一个数,而是一个数组。在Excel里,数组占用一片单元域,单元域用大括号表示,例如{A1:C3},以便和普通单元域A1:C3相区别。设置时先选定单元域,同时按Shift+Ctrl+Enter键,大括弧...
  • (62) 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是(D) A. ABCED B. DBCEA C. CDABE D. DCBEA (63) 线性表的顺序存储结构和线性表的链式存储结构分别是(B) A. 顺序...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

一维数组最多多少个元素