Merge Sorted Array
来源:互联网 发布:在vb集成环境中要添加 编辑:程序博客网 时间:2024/06/05 00:25
这题开始的思路时错的,后来看了网上的总结
Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
分析: 这题的特点是最后的数据都保存在数组A 中。 刚开始我想从前往后复制,是错的。
这和 merge two sorted list 不一样,如果最好数据都保存在a 中,a还没检测到的数据可能会被覆盖。
所以要从后往前复制。
写完代码,一些特殊情况都可以归并了
class Solution: # @param A a list of integers # @param m an integer, length of A # @param B a list of integers # @param n an integer, length of B # @return nothing def merge(self, A, m, B, n): allcur,acur,bcur = m+n-1,m-1,n-1 for ind in range(m+n): if acur==-1: for indd in range(bcur+1): A[indd] = B[indd] break; if bcur==-1: break; if A[acur]>=B[bcur]: A[allcur] = A[acur] acur -= 1 else: A[allcur] = B[bcur] bcur -= 1 allcur -= 1
C++
class Solution {public: void merge(int A[], int m, int B[], int n) { int allcur=m+n-1, acur=m-1, bcur=n-1; for(int i=1;i<=m+n;i++){ if(acur==-1){ for(int j=0;j<(bcur+1);j++){ A[j]=B[j]; } break; } if(bcur==-1){ break; } A[allcur--] = A[acur]>=B[bcur] ? A[acur--]:B[bcur--]; } }};
作为C++ 新手, 这里有新的认识:
1. 对 cur += 1, cur -= 1. 可以使用 cur++ or cur--。 出现前面的语句,就可以看看是不是能转成后一个
2. C++ 里用了三目运算,一下子省了很多代码。 在非常简单的 if else 语句中,要学会用。 这个非常方便。
0 0
- [Array]Merge Sorted Array
- LeetCode: Merge Sorted Array
- Merge Sorted Array
- [Leetcode] Merge Sorted Array
- Merge Sorted Array
- [LeetCode] Merge Sorted Array
- Merge Sorted Array
- Merge Sorted Array
- [88]Merge Sorted Array
- Merge Sorted Array
- Merge Sorted Array
- [LeetCode]Merge Sorted Array
- Merge Sorted Array
- [leetcode]Merge Sorted Array
- Merge Sorted Array
- [Leetcode]Merge Sorted Array
- Merge Sorted Array
- Merge Sorted Array
- Android 实现ListView不可滚动效果
- 如何写一个可以展开的TextView
- libcurl教程
- Nginx配置文件说明
- qsort快速排序
- Merge Sorted Array
- H a r d F a u l t
- 好文章收藏
- 设计模式——简单工厂模式
- LEETCODE Palindrome partitioning
- 实现统计某个月内每天新增用户数的方法
- UITableView进行讲解
- 负债业务
- Android五种数据传递方法汇总