• 88. Merge Sorted Array(归并两个数组)(leetcode)


    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

    Note:

    • The number of elements initialized in nums1 and nums2 are m and n respectively.
    • You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.

    Example:Input:

    nums1 = [1,2,3,0,0,0], m = 3
    nums2 = [2,5,6],       n = 3
    
    Output: [1,2,2,3,5,6]
    
    把归并结果存到第一个数组上。
    方法一:hashmap+双指针
    不得不感叹自己写的代码真是又臭又长。没看清题目不知道怎么运用哈希表。
    哈希表用法:
    Java 中的 HashSet 用于存储一个集合,可以查找元素是否在集合中。如果元素有穷,并且范围不大,那么可以用一个布尔数组来存储一个
    元素是否存在。例如对于只有小写字符的元素,就可以用一个长度为 26 的布尔数组来存储一个字符集合,使得空间复杂度降低为 O(1)。
    Java 中的 HashMap 主要用于映射关系,从而把两个元素联系起来。HashMap 也可以用来对元素进行计数统计,此时键为元素,值为计数。
    和 HashSet 类似,如果元素有穷并且范围不大,可以用整型数组来进行统计。在对一个内容进行压缩或者其它转换时,利用 HashMap 可以
    把原始内容和转


    方法二:双指针+倒序

    1、做题需要思考每道题的特色,然后再决定用什么方法。这道题时想把归并后的数组存在第一个数组里。因为第一个数组后面没有元素,所以从后面拍最方便。

    时间复杂度:o(n)               运算时间:2ms               占用内存:37.4mb

    
    
    苟有恒,何必三更眠五更起;最无益,莫过一日暴十日寒。
  • 相关阅读:
    Android Java执行Shell命令
    ArrayList和LinkedList的几种循环遍历方式及性能对比分析
    Android利用Fiddler进行网络数据抓包
    Android常用的工具类
    单例模式的标准写法、注意事项、作用及测试
    性能优化之Java(Android)代码优化
    性能优化之数据库优化
    Android性能优化之布局优化
    Android ListView滑动过程中图片显示重复错乱闪烁问题解决
    滚动到底部加载更多及下拉刷新listview的使用
  • 原文地址:https://www.cnblogs.com/shaer/p/10419473.html
Copyright © 2020-2023  润新知