问题: 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中 ...
分类:
编程语言 时间:
2019-10-29 11:40:23
阅读次数:
72
一. 问题描述 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nu ...
分类:
编程语言 时间:
2019-10-25 20:34:26
阅读次数:
61
1.算法思路: (1)将待排序数组分为两份,利用递归将两份数组排好序 (2)将两个有序数组归并成一个有序数组。 实现方法: a.设置两个指针,分别指向两个数组的开头,比较指针所指向的数字,将较小的数字加入一个辅助数组中,指针前移,直到其中一个指针溢出 b.将未溢出的数组剩余的元素加入辅助数组中 c. ...
分类:
编程语言 时间:
2019-10-22 21:56:43
阅读次数:
108
1.引例(简单形式) 在一个二维数组中,每一行按从左到右递增的顺序排列,下一行的第一个元素大于上一行最后一个元素,找出目标数是否在此二维数组中。 1.1分析 此题输入为二维数组,其实质是一维有序数组的问题,将二维数组的元素索引对应一维数组,进而采用二分搜索方法求解。 复杂度分析:时间复杂度O(log ...
分类:
编程语言 时间:
2019-10-18 15:37:07
阅读次数:
62
对分治的学习与理解: 分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 分治算法可以分三步走:分解 -> 解决 -> 合并 对二分的学习与理解: 二分搜索,也称折半 ...
分类:
编程语言 时间:
2019-10-15 00:16:38
阅读次数:
94
数组: 优点: 1. 数组的主要优点是根据下标值访问效率会很高 2.但是如果希望根据元素来查找对应的位置? 3.比较好的方法是先对数组排序,再进行二分查找 缺点: 需要先对数组排序,生成有序数组,才能提高查找效率 数组在插入和删除数据时,需要有大量的位移操作(插入中间或者首部时),效率很低 链表: ...
分类:
编程语言 时间:
2019-10-14 18:42:37
阅读次数:
220
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 来源:力扣(LeetCode) 链接:https://leetcode cn.com ...
分类:
编程语言 时间:
2019-10-14 16:13:14
阅读次数:
188
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。(LeetCode题目) 示例 1: nums1 = [1, 3] nums2 = [2] ...
分类:
编程语言 时间:
2019-10-12 13:01:11
阅读次数:
66
Leetcode(4)寻找两个有序数组的中位数 [题目表述]: 给定一个字符串 s,找到 s 中 最长 的回文子串。你可以假设 s 的最大长度为 1000。‘ 第一种方法:未完成;利用回文子串的特点 一开始我的思路如下:回文子串的特点是首尾字母相同,所以我对每一个字母都找到位于它后面的相同字母,利用 ...
分类:
其他好文 时间:
2019-10-10 00:13:31
阅读次数:
93
Leetcode(4)寻找两个有序数组的中位数 [题目表述]: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 第一种方法:lis ...
分类:
编程语言 时间:
2019-10-09 23:51:19
阅读次数:
87