![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法巩固进阶练习
夜间传说
努力学习,天天向上!
展开
-
两个有序序列的中位数
3-3 两个有序序列的中位数 (20 分)已知有两个非降序序列S1, S2, 求S1与S2归并成一个序列的低位中位数。有序序列A0,A1,⋯,AN−1的中位数指A(N−1)/2的值,即第⌊(N+1)/2⌋个数(A0为第1个数)。输入格式:输入分4行。第一行给出第一个序列的长度N1(0<N1≤2500000),随后是第一个序列的信息,即N1个非降序排列的整数。数字用空格间隔。随后是第二个序列的长度N2(0<N2≤2500000)和信息。因为测试数据只能10M,2.5*10的6次方规模,二分效原创 2021-04-22 21:18:12 · 684 阅读 · 0 评论 -
python 函数一些参数的笔记
python 中函数参数关键字是用来防止函数参数关键字顺序出现错误的,在函数调用时,函数关键字的位置可以随意调换。当然也可以和位置关键字参数进行调换,这时候函数关键字只能放到最后。在实参面前加上星号可以将列表或者元组的元素作为单个参数传递给函数作为参数但是如果是字典类型的话就要在实参前面加两个星号,定义的时候也要加上。字典类型的key如果和函数参数的名字相同,可以分开传进函数中def testDic(**op): '字典的参数' print(op)dic={"a":1,"b":2原创 2021-04-21 11:19:36 · 68 阅读 · 0 评论 -
day3-007-数组-移动零
移动零主要可以将前面的部分的数组理解为空的数组就可以了,不要太注意其中原来有没有数字!class Solution {public: void moveZeroes(vector<int>& nums) { int index=0; for(int i=0;i<nums.size();i++){ if(nums[i]!=0){ nums[index++]=nums[i]; } } for(int i=原创 2021-04-15 16:11:33 · 62 阅读 · 0 评论 -
day2-006-数组-数组加一
数组加一我的思路是基于大数加法。如果有进位那就将他们在后面加上一位就好了。class Solution {public: void plus(vector<int>& digits,int i){ if(digits.size()==i)digits.push_back(1); else if(digits[i]+1==10){ digits[i]=0; plus(digits,i+1); } else{ digits[i]+=1;原创 2021-04-14 16:40:46 · 162 阅读 · 0 评论 -
day2-005-数组-两个数组的交集
两个数组的交集刚开始想对其中一个长度较大的数组进行排序然后利用长度较小的数组进行查询,但是发现这种方法对于长度较小的有重复元素的交集的数组就不行了,因为它无法区分是搜索了哪个元素。[1,2,2][1,1]class Solution {public:vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { vector<int>nums3; int siz原创 2021-04-14 16:08:50 · 80 阅读 · 0 评论 -
da2-004只出现一次的数字
异或运算可以排除掉重复的数字class Solution { public int singleNumber(int[] nums) { int reduce = 0; for (int num : nums) { reduce = reduce ^ num; } return reduce; }}用集合解决:public int singleNumber(int[] nums) {转载 2021-04-14 11:24:15 · 59 阅读 · 0 评论 -
旋转数组-day1-003
旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例转载 2021-04-13 21:55:58 · 83 阅读 · 0 评论 -
删除排序数组中的重复项001
删除排序数组中的重复项给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDu转载 2021-04-13 20:01:54 · 74 阅读 · 0 评论