218. The Skyline Problem [leetcode]

这道题的原理就是,寻找有效的拐点。该点满足不被其他任何building覆盖,或者为一个building右部的拐点。 一个building具有的覆盖力从左边起持续到右边结束。当右边结束的时候,该building对有部分的所有building都拾取了覆盖力。 因此,我们先将所有的building的左边...

2017-08-11 16:39:59

阅读数 133

评论数 0

187. Repeated DNA Sequences [leetcode]

题目: All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACGAATTCCG". When studying DNA, it is ...

2017-08-11 15:18:34

阅读数 91

评论数 0

347. Top K Frequent Elements [leetcode]

法 一: hashmap + vector 时间:O(n) class Solution { public: vector topKFrequent(vector& nums, int k) { vector res; if (k < 1...

2017-08-11 11:35:33

阅读数 77

评论数 0

220. Contains Duplicate III [leetcode]

题目: Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums...

2017-08-10 15:57:09

阅读数 81

评论数 0

260. Single Number III [leetcode]

每次遇得这种位操作的新题,都不会做。 很无奈。看了大神的讲解才恍然大悟。 哎。 原理就是对数组进行分组,使得两个单独的数a、b被分到不同的组。再在不同的组里面通过异或的操作分别得出两个数。 怎么样分组呢? 寻找a与b的不同点。此时,不用考虑其他数,因为其他数都是成双的,相同的数一定会被分到...

2017-08-10 00:33:18

阅读数 92

评论数 0

110. Balanced Binary Tree [leetcode]

用递归来解题。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode...

2017-08-09 20:26:59

阅读数 70

评论数 0

164. Maximum Gap [leetcode]

这道题可以有两种刚解法: 解法一: 基于bucket sort的方法: 有n个未排序的数字。 1、先求出数组内最大数max和最小数min。 2、求出每个桶内的数字范围:gap = (max - min) / (n - 1)。 3、算出桶的数量: N = (max - min)/ gap + 1...

2017-08-09 19:54:17

阅读数 89

评论数 0

89. Gray Code [leetcode]

89. Gray Code The gray code is a binary numeral system where two successive values differ in only one bit. Given a non-negative integer n represen...

2017-08-08 12:15:11

阅读数 149

评论数 0

142. Linked List Cycle II [leecode]

利用 floyd cycle detection原理来解题 分析详见 博客287. Find the Duplicate Number [Leetcode] 代码: /** * Definition for singly-linked list. * struct ListNod...

2017-08-08 10:50:09

阅读数 107

评论数 0

189. Rotate Array [Leetcode]

题目: -------------------------------------------------------------------------------------------------------------------------------------- Rotate ...

2017-08-07 17:23:07

阅读数 154

评论数 0

287. Find the Duplicate Number [Leetcode]

这题首先想到的最简单的方法是用快排然后再遍历。 然而题目要求不能改变原来的数组顺序。 所以快排的方法被排除。 后来想到了用binary search来做。 方法一:Binary Search 由于数字的范围是确定的[1,n] 取数字mid,如果【1,mid)没有重复的数字的话,这区间的...

2017-08-07 14:58:53

阅读数 147

评论数 0

420. Strong Password Checker [leetcode]

思路: 有三个问题需要解决: 1、缺失字符种类问题(大写,小写、数字) 可用操作:replace,insert 2、长度问题 可用该操作:insert(< 6),delete(> 20) 3、重复问题 可用操作: replace,insert,delete,其中replac...

2017-08-06 11:59:59

阅读数 459

评论数 0

Battleships in a Board [Leetcode]

从上到下,从左到右遍历,遇到X,判断左边和上边是否有X,没的话则为新出现的battleship。class Solution { public: int countBattleships(vector<vector<char>>& board) { ...

2017-08-01 18:17:27

阅读数 75

评论数 0

150. Evaluate Reverse Polish Notation [Leetcode]

用stack来保存还未操作的数字。 一旦遇见操作符,则pop出stack中的头两个数字,进行计算,再把结果push进stack中。class Solution { public: int evalRPN(vector<string>& tokens) { ...

2017-07-31 15:36:26

阅读数 85

评论数 0

384. Shuffle an Array [Leetcode]

利用swap+随机数生成一个随机的序列。class Solution { public: Solution(vector<int> nums) { srand(time(NULL)); this->originalNums = nums; ...

2017-07-31 14:55:45

阅读数 104

评论数 0

153. Find Minimum in Rotated Sorted Array [Leetcode]

用二分查找法来解决:class Solution { public: int findMin(vector<int>& nums) { int left = 0, right = nums.size() - 1; while (right...

2017-07-31 14:24:14

阅读数 93

评论数 0

49. Group Anagrams [Leetcode]

核心思想: 利用mashmap来存储同构词对应的字符表。其中每一个key对应着结果vector中字符集所在的index。运行耗时:26msclass Solution { public: vector<vector<string>> groupAnagrams(v...

2017-07-31 11:35:02

阅读数 74

评论数 0

静态链接库LIB和动态链接库DLL

静态链接库LIB和动态链接库DLL静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EX...

2016-09-05 14:11:08

阅读数 132

评论数 0

makefile中伪目标详解

伪目标 下面的“clean”目标,是一个“伪目标”,     clean:             rm *.o temp 我们生成了许多文件编译文件,我们也应该提供一个清除它们的“目标”以备完整地重编译而用。 (以“make clean”来使用该目标) ,调用相应的规则,...

2016-09-05 12:19:07

阅读数 564

评论数 1

leetcode two sum

先用快排,时间复杂度为nlogn,再在每个循环里用二分进行查找,时间复杂度为nlogn,总体时间复杂度为nlognclass Solution { public: vector<int> twoSum(vector<int>& nums, int targe...

2016-05-29 14:07:44

阅读数 143

评论数 0

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