[LintCode笔记了解一下]80.Median】的更多相关文章

Given a unsorted array with integers, find the median of it. A median is the middle number of the array after it is sorted. If there are even numbers in the array, return the N/2-th number after sorted. 思路: 找个sort方法sort完后即可 最简单的就是bubble sort 但是bubble…
这一题相对简单,但是代码质量可能不是很好,我分享一下我的做题笔记以及做题过程给各位欣赏,有什么不足望各位大佬指出来 原题目,各位小伙伴也可以试着做一下 . 旋转字符串 中文English 给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转) 样例 样例 : 输入: str="abcdefg", offset = 输出: str = "efgabcd" 样例解释: 注意是原地旋转,即str旋转后为"efgabcd&qu…
这道题目一眼就能看出是送分题,当然在这里也不谈高难度的实现逻辑,肯定有同学会想直接用自带函数实现不就可以了吗? 对的,就是这么简单,然而今天的重点是如何把代码简写到最短. 本文章将带你把代码长度从 一步步走到 Let's get started 首先要说明的是LintCode的代码长度是按照每一个位来计算的,因此代码中所有的空格,备注,换行等都会占用长度 首先初始化代码窗口是这样的 /** * @param character: a character * @return: a characte…
这一题相对简单,但是代码质量可能不是很好,我分享一下我的做题笔记以及做题过程给各位欣赏,有什么不足望各位大佬指出来 原题目,各位小伙伴也可以试着做一下 . 落单的数 中文English 给出 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字. 样例 样例 : 输入:[,,,,,,] 输出: 解释: 仅3出现一次 样例 : 输入:[,,] 输出: 解释: 仅1出现一次 挑战 一次遍历,常数级的额外空间复杂度 注意事项 n≤ 做题笔记 我个人进行形象化理解就是, 要么丢进…
Given two sorted integer arrays A and B, merge B into A as one sorted array. 思路: 因为A的后面的部分都是空的留出来给我们放元素,所以最好是从后往前塞元素进去 void mergeSortedArray(int A[], int m, int B[], int n) { // write your code here ; ; ; &&j>=){ if(A[i]>=B[j]){ A[index]=A[i…
这道题和max subarray很类似,我用local 和 global 的dp方式阔以解决这道 那么我们来看动态规划的四个要素分别是什么? State: localmin[i] 表示以当前第i个数最为结尾的最小连续子数组和. globalmin[i] 表示以当i个数里面(可以不以第i个作为结尾)的最小连续子数组和. Function: localmin[i] = min(localmin[i - 1] + nums.get(i), nums.get(i)); globalmin[i] = mi…
Given an array of integers, find a contiguous subarray which has the largest sum. 首先 當題目涉及到求最大最小值時,最初的比較數字就應當設置爲INT_MAX或INT_MIN,更爲安全. <limits.h>中有INT_MAX和INT_MIN的宏定義可直接使用. 或者自行定義宏 #define INT_MAX 0x7fffffff #define INT_MIN 0x80000000 INT_MAX = INT_M…
思路: 1.需要O(n)的事件复杂度,所以多次循环不考虑 2.四步翻转法 -第一步,找到数组里最小的那个数字,因为是旋转排序数组,所以只要找到某个位置arr[i]>arr[i+1]的话,就找到了那个位置,arr[i+1]就是整个数组里最小的数字 -第二步,找到最小数字的位置后将index到i的前面的部分的数字翻转,比如[4,5,6,7,1,2,3]为例,翻转[4,5,6,7],则得到[7,6,5,4]. -第三步,翻转剩下的部分[1,2,3],则变成[3,2,1] -第四步,全部翻转,则[7,6…
Yet Another Source Code for LintCode Current Status : 232AC / 289ALL in Language C++, Up to date (2016-02-10) For more problems and solutions, you can see my LintCode repository. I'll keep updating for full summary and better solutions. See cnblogs t…
注意multiset的一个bug: multiset带一个参数的erase函数原型有两种.一是传递一个元素值,如上面例子代码中,这时候删除的是集合中所有值等于输入值的元素,并且返回删除的元素个数:另外一种是传递一个指向某个元素的iterator,这时候删除的就是这个对应的元素,无返回值. https://www.cnblogs.com/lakeone/p/5600494.html 删除的时候一定不能删除指针,只能删除迭代器 leetcode那个题就是在这个地方出错的: Input: [3,2,3…