美文网首页
有关数组的两个小题

有关数组的两个小题

作者: 安安静静写代码 | 来源:发表于2017-08-09 08:32 被阅读7次

1.有两个有序整数数组,
例如{1,3,5,7,9}和{2,4,6,7,8},
设计一个函数使两个数组合并,并求出其共同元素,且剔除掉两个数组里重复的元素。{1,2,3,4,5,6,7,8,9}

package demo1;
import java.util.Arrays;
public class Test1 {
    public static void main(String[] args) {
        int[] a = {1,3,5,7,9};
        int[] b = {2,4,6,7,8};
        int[] c= new int[a.length+b.length];//如果a和b没有相同元素那么c的最大长度为a和b的长度
        
        int i,j;
        for(i= 0;i<b.length;i++)//将b数组的内容放到b数组中
        {
            c[i] = b[i];
        }
        int t=i;                //用t记录c数组的下标
        for(i = 0;i<a.length;i++)   
        {
            boolean flag = true;
            for( j = 0;j<b.length;j++)
            {
                if(a[i]==b[j])
                {
                    System.out.println(a[i]);  //打印相同元素
                    flag = false;
                    break;
                }
                
            }                  
            if(flag)                         //判断a数组和b数组不重复元素放到c中
            {
                c[t++] = a[i];
            }
        } 
        Arrays.sort(c);
        for (i=c.length-t;i<c.length;i++) {                  //输出c,输出到t为止
            System.out.print(c[i]+" ");
        }   
    }
}

2.给定一个含有n个元素的整型数组a,输出元素出现的次数.
如:{1,1,1,2,4,3,3}
1:3
2:1
4:1
3:2

package demo1;

import java.util.Arrays;

public class Test3 {

    public static void main(String[] args) {
        
        int[] a = new int[]{1,1,1,2,4,3,3};     
        Arrays.sort(a);                      //先将a数组进行排序
        int b[][] = new int[a.length][2];    //开辟一个a.length行两列的二维数组     
        int t = 0;                           //用t记录b数组下标
        b[t++][0] = a[0];                    //先a数组第一个值赋给b数组
        int i;
        int j;
        for( i = 1;i<a.length;i++)           //将不重复的数据压到b数组里
        {
            if(a[i]>a[i-1])
            {
                    b[t++][0] = a[i];           
            }
        }           
        for( i = 0;i<t;i++)                  //记录数据在a数组中出现次数
        {
            for( j = 0;j<a.length;j++)
            {
                if(b[i][0]==a[j])
                {
                    b[i][1]++;
                }
            }
        }
        for(i = 0;i<t;i++)                 //打印b数组中的数和出现的次数
        {
            System.out.println(b[i][0]+":"+b[i][1]);
        }
        
    }

}

相关文章

  • 有关数组的两个小题

    1.有两个有序整数数组,例如{1,3,5,7,9}和{2,4,6,7,8},设计一个函数使两个数组合并,并求出其共...

  • 数组平均分割算法

    题目 题目1将一个长度为n(n>0)的整型数组分割成两个数组,要求这两个数组的和之差最小题目2任意交换两个长度都为...

  • 数组小题目

    数组去重 对于第二种方案,稍微解释下。其实reduce我也用的少,不过在求和等情境下用的多。因为 Array.re...

  • 数组小题目

    如何找到无序数组中第K大的数?利用快速排序的思想,每次找到某节点的最终位置来缩小检索数组的大小

  • 好玩的JS数组

    好玩的js数组 数组去重 数组是否相等 两个数组的交集 寻找两个数组的不同 在两个数组中的非共公元素 判断两个数组...

  • leetcode 数组中重复的数字

    一道小题的不断优化题目描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1...

  • 动画 | 什么是归并排序?

    归并排序的归并这两个字和递归没有关系,归并是将两个有序的数组归并成一个更大的有序数组,但整个排序算法是有可能跟递归...

  • JS数组以及数组变换

    有关数组 数组对象——一种特殊的对象JS其实没有数组,只使用对象来模拟数组 典型数组和JS数组的区别 典型数组 元...

  • Diff Two Arrays

    比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。

  • Diff Two Arrays - freeCodeCamp

    比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。 这...

网友评论

      本文标题:有关数组的两个小题

      本文链接:https://www.haomeiwen.com/subject/qpkfrxtx.html