1. 程式人生 > >將兩個表序列表合併為一個有序列表

將兩個表序列表合併為一個有序列表

class Solution(object):
    def merge(self, nums1, m, nums2, n): 
        """ 
        Select number of m elements from nums1 and n
        element from nums2, then merge them into one
        list in order.
        """
        if m > len(nums1) or n > len(nums2):
            return "Invalid input for m or n"

        nums0 = list()
        i = 0 
        j = 0 

        while i < m and j < n:
            if nums1[i] <= nums2[j]:
                nums0.append(nums1[i])
                i += 1
            else:
                nums0.append(nums2[j])
                j += 1

        if i >= m:
            nums0.extend(nums2[j:n])
        elif j>=n:
            nums0.extend(nums1[i:m])

        return nums0, len(nums0)

def main():
    s = Solution()
    nums2 = [1,2,3,4,5]
    nums1 = [4,5,6,7,8,9,10]
    print s.merge(nums1, len(nums1), nums2, len(nums2))
    print s.merge(nums1, 0, nums2, 1)
    print s.merge(nums1, 5, nums2, 3)


if __name__ == "__main__":
    main()

[[email protected]n-ctrl-01 ~]# python merge_list2.py 
([1, 2, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10], 12)
([1], 1)
([1, 2, 3, 4, 5, 6, 7, 8], 8)


相關推薦

Java有序連結串列合併一個有序連結串列、有序數組合併一個有序陣列

有序連結串列合併 題目:已知兩個連結串列head1和head2各自有序,請把它們合併成一個連結串列依然有序。結果連結串列要包含head1和head2的所有節點,即使節點值相同。 分析:此題目使

MFC中如何獨立的程式合併一個程式(障眼法)

今天一個同學叫我幫忙解決一個關於MFC的問題,問題為:“將兩個獨立的MFC程式合併為一個程式 ”。 當然了,我用的是障眼法。 (1)下面先來看看具體情況:程式A和程式B分別是兩個獨立的工程檔案。

用Pythonword文件合併一個內容,並輸出

import docx #獲得文件 file=docx.Document("1.docx") file2=docx.Document("2.docx") str=[] #按照段落讀取文件內容 for para in file.paragraphs: str.app

序列合併一個有序列表

class Solution(object): def merge(self, nums1, m, nums2, n): """ Select number of m elements from nums1 and n

C# 不同的dataTable合併一個自定義的dataTable中

[csharp]  view plain  copy //比較三種情況        &

C++遞增連結串列 合併一個遞增連結串列 不佔用額外的空間

/*create by tyy*/ #include <iostream> #include <string> using namespace std; #define ok 1 #define error -1 #define overflow -

前端面試題(升序數組合併一個升序陣列)

給定兩個陣列a和b,值為別為[1,3,5,7]和[2,4,6,8],怎麼才能將它們變成c,值為[1,2,3,4,5,6,7,8]? 前提不能把a和b合併之後再排序,並且採用最優演算法讓迴圈執行的次數最少。 這道題是近來比較火的演算法題之一,我在58以及區塊鏈的一家公司都遇到過,而且

有序數組合併一個有序陣列,演算法複雜度O(N)

/** * */ /** * @author jueying: * @version 建立時間:2018-10-22 下午01:32:44 * 類說明 */ /** * @author jueying * */ public class Test4 {

java 有序數組合併一個有序陣列(時間複雜度低)

預設一般會採用陣列先合併,在排序 時間複雜度會在o(n) -o(n*n) 之間 我想了個其他的思路 對陣列1 和陣列2 元素從頭開始進行一次對比,小的放入結果集合, 直到兩個陣列的元素都加入結果集合 這樣的時間複雜度 在o(n) 只要比較兩個陣列較短的長度的次數 程式碼

| 遞增鏈合並一個遞減鏈

tro nod 大於 div 分享 arr closed merge 鏈表 王道P38T13 主代碼: LinkList merge_desc(LinkList &A,LinkList &B){ LNode* C=new LNode; C-

資料結構——演算法之(033)(有序單鏈合併一個有序的單鏈

【申明:本文僅限於自我歸納總結和相互交流,有紕漏還望各位指出。 聯絡郵箱:[email protected]】 題目: 兩個有序單鏈表合併為一個有序的單鏈表(預設升序)題目分析: 1、因為兩個連結串列都是有序的,所以首先要記錄那個連結串列頭最小 2、大致

java實現有序連結串列合併一個有序連結串列

節點類 public class Node { private Node next; private Integer number; Node(Integer number) { this.number=number; next=null; } Node() {

CAD中如何CAD圖紙檔案合併

在CAD中,小夥伴們可能會遇到過這樣的問題,那就是在CAD繪圖中怎麼將兩個CAD圖紙檔案進行合併,那在CAD中如何將兩個CAD圖紙檔案的具體操作要怎麼來操作呢?小夥伴們都知道嗎?那下面小編就來教教大傢俱體的操作技巧,希望能夠幫助到你們。 第一步:首先,小夥伴們將電腦進行開啟,如果電腦中沒有安裝CAD編輯器。

連結串列,第一升序,第二降序,合併一個升序連結串列(C++)

#include <iostream> #define NULL 0 using namespace std; struct Node { char data; Node* next; }; Node* create() { Node* head

無序的陣列 如何進行合併 一個有序的陣列

這裡我們首先來看自己也才畢業半年,這些題比較適合新手練練思想,技術之路且行且珍惜。演算法絕對是核心競爭力。兩個無序的陣列 那麼首先第一步合併第二步 使用正則表示式去掉【】第三步 split進行劃分第四步 最核心的排序此處用了Arrays.sort  第二個引數用了匿名內部類 

88. Merge Sorted Array【leetcode】演算法,java有序數組合併到一個數組中

88. Merge Sorted Array Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You may as

用Pythonexcel表格合並一個表格

test form log num nump 數據 哪裏 workbook 一份 生活中經常會碰到多個excel表格匯總成一個表格的情況,比如你發放了一份表格讓班級所有同學填寫,而你負責將大家的結果合並成一個。諸如此類的問題有很多。除了人工將所有表格的內容一個一個復制到匯總

如何編譯靜態庫及.a靜態庫合併一個.a靜態庫

所使用的命令為ar 1 將所有的.a庫解壓成.o檔案ar x xx.a 2 將所有的.o 檔案合併成.aar rcs xx.b *.o 3 編譯.a 靜態庫 1)生成對應的.o 檔案 gcc -c a.c b.c 2)使用ar命令合成靜態庫 ar crs libjson.a *.o 3) 檢視編譯庫

怎麼Excel工作簿合併一個新的工作簿

Excel工作簿是我們生活中常用到的一個辦公軟體,但有的時候Excel工作簿數量很多,我們需要將它們合併到一個新的工作簿,有什們簡單的方法呢? 操作方法 01我們進行工作簿的合併,先建立一個資料夾,把所有需要合併的到一起的工作簿都放到裡面。 02在新建的資料夾裡面新建一個Excel

有序數組合併一個大的有序陣列

package com.test;public class use7 {    public static void main(String[] args) {        int[] a = { 3, 4, 7, 9 };        int[] b = { 1, 5,