LeetCode- 1122.数组的相对排序

/** 1122.数组的相对排序

* @author 作者 Your-Name:

* @version 创建时间:2020年2月18日 上午11:39:13

* 给你两个数组,arr1 和 arr2,

    arr2 中的元素各不相同
    arr2 中的每个元素都出现在 arr1 中

对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。

示例:

输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
输出:[2,2,2,1,4,3,3,9,6,7,19]


*/

public class 数组的相对排序 {
	public static void main(String[] args)
	{
		
	}
	public int[] relativeSortArray(int[] arr1, int[] arr2) 
	{
        int[] a = new int[1001];
        int[] b = new int[arr1.length];
        for(int i=0;i<arr1.length;i++)
        {
        	a[arr1[i]]++;
        }
		int temp=0;
        for(int i=0;i<arr2.length;i++)
        {
        	while(a[arr2[i]]>0)
        	{
        		b[temp++] = arr2[i];
        		a[arr2[i]]--;
        	}
        }
		for(int i=0;i<1001;i++)
		{
			while(a[i]>0)
			{
				b[temp++] = i;
				a[i]--;
			}
		}
		return b;
		
    }

}
扫描二维码关注公众号,回复: 9661453 查看本文章
发布了72 篇原创文章 · 获赞 7 · 访问量 4124

猜你喜欢

转载自blog.csdn.net/l769440473/article/details/104589417