合并数组

给定两个数组
a = [4,5,6,9,0,0,0]
b = [1,2,3]
最后输出[1, 2, 3, 4, 5, 6, 9]

第一种实现方式双针模型:

def sortTwoSortedArry(a,b):b_num = len(b)a_num = len(a)-b_numli = []i ,j =0,0# 双针模型从左往右扫描,终止条件是,只要任意一个数组走完了,# 走完了没有完的那个数组直接接上就行了while i<a_num and j <b_num:if a[i] <= b[j]:li.append(a[i])i +=1if b[j] < a[i]:li.append(b[j])j +=1# 没走完的直接把尾巴接上去li += a[i:a_num]li += b[j:b_num]    return li

第二种方式原地实现:

def sortTwoSortedArry_in_place(a,b):b_num = len(b)total_num = len(a)a_num = total_num-b_num# 原地方式,就需要倒着放,这个也是比较一般的思路# 原地操作一般想法,一是,取出一个元素放在空中,留出一个空# 二是纯粹通过交换来实现# 三是,哪里有空位就往哪里放,倒着放是一种思路# 指向数组a的数组i = a_num-1# 指向数组bj = b_num-1# 最终结果的指针k = total_num-1while i >=0 and j>=0:if a[i] >= b[j]:a[k] = a[i]i -=1k -=1if b[j] > a[i]:a[k] = b[j]j -=1k -=1 # 把尾巴接上
#    a[:i+1] = a[:i+1]a[:j+1] = b[:j+1]

运行结果

a = [4,5,6,9,0,0,0]
b = [1,2,3]
print(sortTwoSortedArry(a,b))
print(a)
sortTwoSortedArry_in_place(a,b)
print(a)runfile('D:/share/test/arry_and.py', wdir='D:/share/test')
[1, 2, 3, 4, 5, 6, 9]
[4, 5, 6, 9, 0, 0, 0]
[1, 2, 3, 4, 5, 6, 9]

合并数组:双针模型,原地实现相关推荐

  1. 双针模型:验证括号,特殊case处理

    我们知道双针:一般形式,两个指针都从左到右扫描,或者一头一尾两边朝中间扫描,或者在两个数组里扫描 验证括号,这个问题:一个指针扫描当前数组,另一个指针指向的是栈顶元素,也是双针模型的一种变形. 从这里 ...

  2. EM算法双硬币模型的python实现

    1 双硬币模型 $\quad`假设有两枚硬币A.B,以相同的概率随机选择一个硬币,进行如下的抛硬币实验:共做5次实验,每次实验独立的抛10次,结果如图中a所示,例如某次实验产生了H.T.T.T.H.H ...

  3. 青少年ADHD双通路模型的神经相关性

    **目标:**双通路模型已被提出,通过两种基于不同脑回路的独立心理通路来解释注意缺陷多动障碍(ADHD)症状的异质性.作者试图测试假设的认知和动机通路是否具有可分离的神经相关性. **方法:**在一项 ...

  4. Memory型数据、多维数组以及合并数组的辨析

    在学习数字电路和Verilog HDL的过程中,相信大家一定遇到过Memory型数据.多维数组以及合并数组,有时候就会傻傻分不清三者的区别,我也碰到过,所以就简单记录一下自己的认识,如果大家有好的更好 ...

  5. 使用JavaScript合并数组

    Merging arrays is a fairly common occurrence.  I remember when I worked a lot with PHP I would use a ...

  6. Numpy 多维数组变为常量、增加维度、元素复制、按块复制、横轴竖轴合并数组、连接数组

    1. flatten NumPy 的 flatten 函数也有改变 shape 的能力,它将高维数组变为向量.但是,它会发生数组复制行为. In [57]: m = np.random.randint ...

  7. 单个Transformer完成信息检索,谷歌用可微搜索索引打败双编码器模型

    选自arXiv 作者:Yi Tay等 机器之心编译 编辑:陈萍 谷歌提出基于 Transformer 的可微文本检索索引,明显优于双编码器模型等强大基线,并且还具有强大的泛化能力,在零样本设置中优于 ...

  8. php数组合并如何不覆盖,php如何实现合并数组并且不覆盖重复值

    php合并数组不覆盖的实现方法:首先创建一个PHP示例文件:然后定义两组数组:接着通过"$form_data1 + $form_data2;"方法合并数组:最后输出合并后的值即可. ...

  9. 如何在Swift中串联或合并数组?

    本文翻译自:How do I concatenate or merge arrays in Swift? If there are two arrays created in swift like t ...

最新文章

  1. Python学习笔记.OS学习笔记 OS操作系统(operating system)(三) 日期和时间
  2. 西霞口船业公司疑遭外商合谋欺诈
  3. 登录MOSS站点失败
  4. HDOJ HDU 1106 排序 ACM 1106 IN HDU
  5. Windows Server 2012 配置远程桌面帐户允许多用户同时登录
  6. 明显调用的表达式前的括号必须具有指针函数类型_基于指针对象的方法
  7. C# WPF抽屉效果实现
  8. C语言程序设计复习指导
  9. golang mysql大量连接_golang mysql 如何设置最大连接数和最大空闲连接数
  10. 02-HTML标签语法+字体标记
  11. [UVa11995] I Can Guess the Data Structure!
  12. Spring技术发展及框架设计
  13. bartender各个版本下载链接(10.1\2016\2019)
  14. svg--矢量图和位图
  15. 黑苹果NVIDIA显卡驱动程序【 WebDriver-387.10.10.10.40.131+支持macOS 10.13.6 High Sierra (17G8037)版本】
  16. 防止记录丢失,保存QQ聊天记录文件的方法
  17. json转换工具Fastjson
  18. 二进制部署k8s1.18(下)
  19. 安卓 LayoutInflater详解
  20. 解析美团外卖智能配送的AI技术原理(附PPT)

热门文章

  1. mysql新建库和用户linux_Linux环境 Mysql新建用户和数据库并授权
  2. cad 打开硬件加速卡_为什么我能用CAD“飙车”?因为我用了这些加速秘笈
  3. 服务器运维管理系统哪个好用,宝塔和云帮手哪个服务器运维管理工具好用?
  4. linux 定时器和sleep,linux中sleep函数的使用和总结
  5. python列表生成多个号码_python按需生成固定数量电话号码并保存为excel(不重复)...
  6. java命令查看 java.io.tmpdir 参数值
  7. maven项目,提示One or more constraints have not been satisfied
  8. 激光振镜误差校正算法C语言,动态聚焦激光振镜扫描系统的误差分析及图形校正算法.pdf...
  9. @SentinelResource使用
  10. python英文语义角色标注_八款中文词性标注工具使用及在线测试