代码练习
主要是上传lintcode上的各种题目。
仓莫斯
软件开发工程师
展开
-
二分查找总结
二分查找 在有序数组中查找一个具体的目标值,主要分为三种情况: 目标位置任意匹配; 目标位置最右匹配; 目标位置最左匹配。 目标位置任意匹配 int findPosition(vector<int> &nums, int target){ if (nums.size() <= 0){ return -1; } int len = ...原创 2019-12-24 17:03:21 · 106 阅读 · 0 评论 -
LintCode 65. 两个排序数组的中位数
LintCode 65. 两个排序数组的中位数 题目描述 两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。 样例: 输入: A = [1,2,3,4,5,6] B = [2,3,4,5] 输出: 3.5 样例: 输入: A = [1,2,3] B = [4,5] 输出: 3 思路 最直观的思路是就是将两个数组合并成一个数组,然后将这个数...原创 2019-12-19 09:42:13 · 122 阅读 · 0 评论 -
LintCode 585. 山脉序列中的最大值
585. 山脉序列中的最大值 题目描述 给 n 个整数的山脉数组,即先增后减的序列,找到山顶(最大值)。数组严格递增,严格递减。 样例: 输入:nums =[1,2,4,8,6,3] 输出:8 样例: 输入:nums=[10,9,8,7] 输出:10 思路 相关代码 ...原创 2019-12-14 09:24:54 · 229 阅读 · 0 评论 -
double类型数组排序
#include<algorithm> #include<vector> #include<string> #include<iostream> using namespace std; //double类型数据排序,要求时间复杂度为O(n) //O(n)复杂度的排序算法主要是计数排序、基数排序和桶排序。 //采用基数排序的方式求解这个问题 v...原创 2019-12-09 17:00:12 · 2998 阅读 · 0 评论 -
LintCode 1312. 数字1的个数
1312. 数字1的个数 题目描述 给定整数n,计算出现在小于等于n的所有非负整数中的数字1的总数。 样例: 输入:13 输出:6 样例: 输入:100 输出:21 思路 很容易想到的思路是采用暴力求解的方法,判断从1到N每个数中含有1的个数,然后将其相加,但这种方法的时间复杂度很高,不是很适用。 找到其中的规律,用数学规律来求解这道题目。 规律如下: 求取当前位的高位,低位,并和当前位结...原创 2019-11-21 10:58:35 · 156 阅读 · 0 评论