自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (9)
  • 收藏
  • 关注

原创 LeetCode之Kth Largest Element in an Array

/*分治法,采用快排中用到的partition函数。*/class Solution {public: int findKthLargest(vector& nums, int k) { int left = 0, right = nums.size()-1; while(left <= right){ int res = fin

2015-09-28 18:39:48 434

原创 LeetCode之N-Queens

/*深度搜索。*/class Solution {public: vector> solveNQueens(int n) { vector > res; if(n < 1) return res; vector path; vector > res_num; dfs(res_num, path, n, 0)

2015-09-27 17:12:21 367

原创 LeetCode之Unique Paths

/*备忘录法。*/class Solution {public: int uniquePaths(int m, int n) { if(m < 1 || n < 1) return 0; vector > path(m+1, vector(n+1, 0)); for(int i = 1; i <= m; ++i){ for(int j = 1; j <= n; ++j){

2015-09-27 16:36:10 366

原创 LeetCode之Palindrome Partitioning

/*采用深度搜索算法。写法一。*/class Solution {public: vector> partition(string s) { vector > res; if(s.empty()) return res; vector path; partition(s, res, path, -1, 0); return res; } void partitio

2015-09-27 14:58:09 341

原创 LeetCode之Number of Digit One

/*针对每一个数字位进行考虑,例如123N45,考虑所有N为1的数字的数目。根据N取值,N对应为1的数目为(left为N左边的数字,right表示N右边的数字):f(N) = left*100 (N = 0)f(N) = left*100 + right+1 (N = 1)f(N) = (left+1)*100 (N > 1)*/class Solution {public:

2015-09-10 23:05:59 395

原创 LeetCode之Integer to English Words

/*按照提示,将原来数字分成3个一组,每个组内数字字符串化,然后再组合起来。*/class Solution {public: string numberToWords(int num) { string units[4] = {"", " Thousand", " Million", " Billion"}; int i = 0; st

2015-09-09 10:44:39 336

原创 LeetCode之Basic Calculator II

/*用两个辅助vector来进行运算,一个存符号,一个存数字。*/class Solution {public: int calculate(string s) { if(s.empty()) return 0; vector op; vector num; for(size_t i = 0; i < s.size();)

2015-09-09 09:40:54 368

原创 LeetCode之Compare Version Numbers

/*解题思路:比较每个.之间的数字即可,但是题中有一些小trick,需要注意。*/class Solution {public: int compareVersion(string version1, string version2) { size_t i1 = 0, i2 = 0; size_t left1 = 0, left2 = 0; int n1, n2

2015-09-08 20:13:58 310

原创 LeetCode之Reverse Words in a String

class Solution {public: void reverseWords(string &s) { if(s.empty()) return; //删除字符串头尾连续的空格 while(s[s.size()-1] == ' ') s.erase(s.end()-1, s.end()); while(s[0] ==

2015-09-08 17:12:58 293

原创 LeetCode之Shortest Palindrome

/*为了获取最短的回文串,需要找到字符串从头开始的最长回文子串,然后取剩下部分的字符串的逆序加到字符串的前头,即可获得最短回文子串。所以解决该问题的关键部分是寻找以第一个字符开始的最长回文子串,有以下几种方法:1.采用暴力查找,大数据下会超时。2.借用KMP算法来寻找最长回文子串,即本代码中所用方法;3.采用Manacher算法。*/class Solution {public:

2015-09-07 17:09:46 334

原创 LeetCode之Longest Palindromic Substring

/*用dp[i][j]表示子串s[i...j]是否为回文,则有dp[i][j] = d[i+1][j-1] && s[i] == s[j](i+1 < j);dp[i][j] = (s[i] == s[j])(i+1 == j)并且,dp[i][i] = true;。*/class Solution {public: string longestPalindrome(string s)

2015-09-03 19:17:40 276

原创 LeetCode之Power of Two

/*方法一:用2除。*/class Solution {public: bool isPowerOfTwo(int n) { if(n < 1) return false; while(n != 1){ if((n & 1) != 0) return false; n /= 2; }

2015-09-02 20:28:37 264

原创 LeetCode之Pow(x, n)

/*直接模仿数学中的乘幂算法。*/class Solution {public: double myPow(double x, int n) { if(n == 0) return 1.0; else if(fabs(x) < 1e-10) return 0.0; else{ if(n > 0){ if(x > 0.0) return myPowPositive(x

2015-09-02 17:13:59 304

原创 LeetCode之Rectangle Area

/*根据题意,两种情况:1)两个矩形不相交,直接返回两个矩形的面积之和;2)两个矩形相交,返回两个矩形面积之和与交集的面积差。*/class Solution {public: int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { int area0 = (C-A) * (

2015-09-02 16:38:35 301

原创 LeetCode之Sqrt(x)

/*通过二分法搜索。但是要注意两个数相乘可能会大于int能表示的最大值,所以程序中采用long long型数据。*/class Solution {public: int mySqrt(int x) { if(x == 0) return 0; long long left = 1, right = x; while(left < ri

2015-09-02 16:12:08 255

原创 LeetCode之Ugly Number II

/*根据提示,保存一个有序的丑数数组,然后通过不断乘以2,3,5,从中选出最小的数作为下一个丑数。*/class Solution {public: int nthUglyNumber(int n) { vector uglies(1, 1); //uglies.reserve(n); int i2(0), i3(0), i5(0);

2015-09-02 15:41:52 277

原创 LeetCode之Ugly Number

/*判断一个数是否为Ugly Number。如果该数本身为1,2,3,5,那么它即为Ugly Number。否则,判断这个数是否能被2,3,5整除。如果能,则除以2,3,5,然后判断它除过之后的数,否则它不为Ugly Number。*/class Solution {public: bool isUgly(int num) { if(num <= 0) retur

2015-09-02 14:07:56 245

原创 LeetCode之 Delete Node in a Linked List

/*由于不知道前驱结点,因此无法删除当前结点的。为了完成题目中的要求, 唯有一个办法:用后面结点的值将当前结点的值覆盖掉。*/class Solution {public: void deleteNode(ListNode* node) { if(node == nullptr || node->next == nullptr) return; Lis

2015-09-02 10:31:43 272

原创 LeetCode之Intersection of Two Linked Lists

/*思路: 1.找到两个链表的长度; 2.根据这两个链表的长度差,使较长的那个链表向前走相应长度。 3.同时扫描两个链表,寻找它们的交叉节点。*/class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(headA == nullptr

2015-09-02 10:17:09 282

原创 LeetCode之Palindrome Linked List

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ /*思路:为了判断链表是否为回文,需要对比链表中第一个、倒数第一个,第二个、倒数

2015-09-02 09:47:55 243

原创 LeetCode之Remove Linked List Elements

class Solution {public: ListNode* removeElements(ListNode* head, int val) { if(head == nullptr) return head; ListNode *pre, *p; while(head != nullptr && head->val == val){

2015-09-02 09:01:25 273

原创 LeetCode之Reverse Linked List

/*链表的头插法。*/class Solution {public: ListNode* reverseList(ListNode* head) { if(head == nullptr || head->next == nullptr) return head; ListNode node(-1); node.next = head;

2015-09-02 08:43:26 291

原创 LeetCode之Count Primes

/*根据提示求解。*/class Solution {public: int countPrimes(int n) { bool mark[n]; memset(mark, 1, sizeof(mark)); int sqrt_n = sqrt(n); for(int i = 2; i <= sqrt_n; ++i){

2015-09-01 21:46:58 294

原创 LeetCode之Repeated DNA Sequences

/*本题最直观的想法是用Hash Table存储起连续的10个字符串,但是这样会超出内存限制。所以用一个数字代替A/C/GT,减少内存消耗。*/class Solution {public: vector findRepeatedDnaSequences(string s) { vector letters(256, 0); letters['A'] = 0; letters[

2015-09-01 21:24:42 330

原创 LeetCode之Fraction to Recurring Decimal

/*思路:1.计算整数部分;这里主要注意,分子绝对值小于分母绝对值且分子分母异号时,要返回“-0”。2.计算小数部分;思路:用一个hash表记住出现过的余数以及余数对应的位置,如果当前用于计算 小数的余数在hash表中存在,则应返回结果,注意添加循环小数的括号。3.合并整数、小数部分,返回结果。整体来说,思路相对简单,但是写代码时有很多细节需要注意。*/class Solution

2015-09-01 11:23:53 404

原创 LeetCode之Happy Number

/*用一个Hash表记录出现过得数字。采用如下步骤获得结果:从当前正数n开始,1)如果n == 1,则它为happy number,返回true,结束。2)如果n != 1, 且hash表中有等于n的数字,会陷入循环,返回false,结束。3)如果n != 1,且hash表中没有等于n的数字,则将n加入hash表,继续计算下一个n。重复。*/class Solution {public:

2015-09-01 10:21:24 339

原创 LeetCode之Isomorphic Strings

/*从s->t映射可以,用hash记住每个映射,判断是否能从s->t进行映射。反过来,再判断是否能从t->进行映射,只有能进s->t和t->的映射,才是同构的。*/class Solution {public: bool isIsomorphic(string s, string t){ return s2t(s, t) && s2t(t, s); }

2015-09-01 10:02:18 267

原创 LeetCode之Longest Substring Without Repeating Characters

class Solution {public: int lengthOfLongestSubstring(string s) { vector loc(256, -1); int start = -1, res(0); for(int i = 0; i < s.size(); ++i){ if(loc[s[i]] >

2015-09-01 09:45:13 218

原创 LeetCode之Valid Anagram

/*Hash Table. 时间复杂度O(n).用一个Hash表记录s中每个字母出现的次数,然后在扫描t数组检查它们字母个数是否一样。*/class Solution {public: bool isAnagram(string s, string t) { unordered_map count; for(int i = 0; i < s.size(

2015-09-01 09:14:41 257

CameraRawTool: 将bayer raw 转为dng格式。

CameraRawTool: 将bayer raw 转为dng格式。

2022-08-22

cubic convolution/bilinear/nearest image resize matlab实现

cubic convolution/bilinear/nearest 算法的matlab实现。

2018-04-29

CMOS Sensor 资源

主要是CMOS Image Sensor相关原理,对相关知识感兴趣的可以好好研究下。

2018-03-03

Image Sensors and Signal Processing for Digital Still Cameras

本书介绍了现代数码相机的基本原理,基本覆盖到了各个硬件模块和少数算法的介绍。但本书的着重点是Image Sensor的成像原理、artifacts和noise来源,以及对策,想了解相关知识的可以仔细研读其相关部分。

2018-03-03

Electro-Optics-Digital Color Imaging Handbook

讲色彩科学以及它在摄影、印刷、显示等领域的应用。

2016-07-29

Single-Sensor Imaging Methods and Applications for Digital Cameras

单传感器相机经典书籍。

2016-07-12

vs2012中配置opencv2.4.9测试程序

vs2012中配置opencv2.4.9项目的简单测试程序。功能是用opencv2.4.9功能函数读入并显示一张图片

2014-05-18

Opencv手册

opencv官方文档,介绍了opencv每个函数的调用方法.

2014-05-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除