一、复习

  1. 移除元素-双指针问题,一个指针用来记录下一个扫描哪个元素;另一个指针用来记录下一个写哪里
  2. 搜索插入位置-二分法,不断与中间位置的数字比较大小值,缩小区间范围;当两侧只差一个单位时,看val是否与两侧中的一个相等or在两个之间。

二、66. 加一

1、感觉这道题的主要问题在于进位。
2、不知道为啥错

class Solution:def plusOne(self, digits: List[int]) -> List[int]:n = len(digits)for i in range(n-1,-1,-1):if digits[i]+1>=10:digits[i] = digits+1-10digits[i-1]+=1else:digits[i]+1return digits

3、鹅鹅鹅好智障,没赋值。赋值后还是有考虑不周全的情况
4、写的好长,主要思路就是判断是不是最后一个,来决定加不加1;判断是不是第一个,来决定要不要insert。其他的,就是>10,就进位,然后自己-1。

class Solution:def plusOne(self, digits: List[int]) -> List[int]:n = len(digits)for i in range(n-1,-1,-1):if i ==n-1:if digits[i]+1>=10:digits[i] = digits[i]+1-10if i==0:digits.insert(0,1)return digitselse:digits[i-1]+=1else:digits[i] = digits[i]+1return digitselse:if digits[i]>=10:digits[i] = digits[i]-10if i==0:digits.insert(0,1)return digitselse:digits[i-1]+=1else:return digits

5、、看下别人怎么写的
好强啊,看倒数几位有几个9。没有9,就直接加1;有几个9,就在再往前一位变为1,后面变为0;全为就,就在最前面—加一个1,后面为0。

三、88. 合并两个有序数组

1、区分break(这个循环)和continue(本轮循环)
2、没有考虑到有负数的情况

class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"""Do not return anything, modify nums1 in-place instead."""for j in range(n):for i in range(m+n):if nums1[i]==0:nums1.insert(i,nums2[j]) break   if nums2[j]<nums1[i]:nums1.insert(i,nums2[j])breakdel(nums1[m+n:])

3、又试了下,不想说话了

class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"""Do not return anything, modify nums1 in-place instead."""del(nums1[m:])for j in range(n):for i in range(m+j):   if nums2[j]<nums1[i]:nums1.insert(i,nums2[j])breakif i==m+j-1: nums1.insert(i+1,nums2[j]) 

4、一行送走,绝绝子。时间复杂度:平均情况为 O((m+n)\log(m+n))O((m+n)log(m+n))。

  nums1[m:] = nums2nums1.sort()

5、再借用一个空间,用双指针也可以。被之前的省空间的思维禁锢了,这里没有这个条件。nums1[:]=sorted和nums1=sorted[:]不一样

class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"""Do not return anything, modify nums1 in-place instead."""sorted = []p,q=0,0while(p!=m or q!=n):if p==m:sorted.append(nums2[q])q +=1elif q==n:sorted.append(nums1[p])p +=1else:if nums1[p]>nums2[q]:sorted.append(nums2[q])q+=1else:sorted.append(nums1[p])p+=1nums1[:]=sorted

Leetcode-D33-数组-66. 加一88. 合并两个有序数组相关推荐

  1. java两个有序数组的初始化_leecode:88–合并两个有序数组 | 星尘

    给定两个有序整数数组 nums1和 nums2,将 nums2合并到 nums1中,使得 num1成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n. 你可以 ...

  2. LeetCode 88. 合并两个有序数组 golang

    88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...

  3. Java实现 LeetCode 88 合并两个有序数组

    88. 合并两个有序数组 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元 ...

  4. leetcode 88. 合并两个有序数组

    88. 合并两个有序数组 class Solution {public:void merge(vector<int>& nums1, int m, vector<int> ...

  5. (数组)88. 合并两个有序数组(java)

    1.题目描述: 2.实例: 3.分析: 感觉过于简单,都不好意思发出来,但作为记录一步步走来,还是分析分析 非递减就是递增嘛 递增总没错  而且人家数组提供有方法直接用嘛 我的做法就是把第二个数组的值 ...

  6. LeetCode-双指针-88. 合并两个有序数组

    88. 合并两个有序数组 思路:归并排序,一长一短,肯定会有一个先放完,放完后把另一个拷贝过去即可. 为了避免覆盖所以从最后开始向前放最大的元素 class Solution {public:void ...

  7. 双指针:88. 合并两个有序数组

    题目链接 88. 合并两个有序数组 解题思路 一. 合并数组后排序,时间复杂度为O((n+m)log(n+m)) 代码: 快排详解 class Solution {public void merge( ...

  8. 88. 合并两个有序数组 golang

    88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...

  9. 88. 合并两个有序数组 JavaScript实现

    88. 合并两个有序数组 1.直接合并后排序 将nms2放到nums1的后面,然后进行排序 var merge = function(nums1, m, nums2, n) {// 将splice将n ...

最新文章

  1. “盛大文学”年终派对
  2. thinkphp3.2笔记(1)目录,控制器及url模式,地址解析
  3. android 屏幕适配dimens,关于android:安卓屏幕适配一键生成dimens文件
  4. c语言表白代码颜色,C语言告白代码,一闪一闪亮晶晶~
  5. 【大数据】Hbase如何批量删除指定数据
  6. Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法...
  7. 应用安全_WTS-WAF绕过
  8. Python学习日记(初级篇02面向对象之基础)——黑马程序员视频学习笔记
  9. TCP/IP四层模型
  10. 计算机网络实验指导书 pdf,计算机网络实验指导书(新版).pdf
  11. 用线性代数解释图论中的一些结论
  12. 2017计算机二级c语言题库,2017年计算机C语言二级考试题库
  13. Vue3 Composition API教程
  14. AndroidStudio高德地图获取key
  15. php 九宫格验证码,用php数字九宫格.
  16. Hive 自定义函数编写(UDF,UDAF,UDTF)
  17. 最快的Android TreeView出现了!
  18. AndroidStudio报错:Entry name ‘META-INF/androidx.legacy_legacy-support-core-utils.version‘ collided
  19. 1024程序员节打卡
  20. 高德地图——骑行导航

热门文章

  1. 将base64编码转换成图片
  2. 服务器文件夹取消只读,服务器上的excle文件有人打开文件编辑后关闭文件,别人再去打开文件时“**”正在编辑,用只读方式打开!excel怎样解除只读...
  3. openldap配置
  4. Python中的lambda和apply用法
  5. python中input是什么意思_python input是什么意思
  6. idea安装copilot
  7. 达梦数据库密码策略参数设置
  8. flutter创建新项目或者接手老项目配置环境依赖等全流程
  9. 使用git rebase和merge合并特定commits到master分支
  10. 在城市地下综合管廊监控系统中,普遍存在哪些问题?