自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Leetcode Reconstruct Itinerary

题意:给出一个有向图,求出一条欧拉通路。思路:求欧拉通路。DFS 和后序遍历。class Solution {public: vector findItinerary(vector> tickets) { if(tickets.size() == 0) return re; for(int i = 0; i < tickets.s

2017-03-29 12:13:25 400

原创 Leetcode Count of Range Sum

题意:求连续和在区间内的和的个数。思路:分治,利用归并排序的思想,分成前后两部分。如果sumb [L] - suma[I] > upper sumb[K] - suma[I] > lower,那么L - K之间的和都满足要求。class Solution {public: int countRangeSum(vector& nums, int lower, int upper)

2017-03-28 12:29:14 261

原创 Leetcode Maximum XOR of Two Numbers in an Array

题意:给出一列数组,求出其中两个数字异或的最大值。思路:这题的思路很巧妙,枚举了每个位上的数字。又利用的异或的性质。class Solution {public: int findMaximumXOR(vector& nums) { int mask = 0; int re = 0; for(int i = 31; i >=0; -

2017-03-28 00:44:06 266

原创 Leetcode Find K Pairs with Smallest Sums

题意:给出两个排好序的数组,求出前k个和最小的数对。思路:归并排序的归并思路,每次取最小的数对。class Solution {public: vector> kSmallestPairs(vector& nums1, vector& nums2, int k) { vector> mp; for(int i = 0; i < nums1.size

2017-03-27 09:48:13 221

原创 Leetcode Maximum Product of Word Lengths

题意:给出一列单词,求出两个单词长度之积的最大值,要求这两个单词没有重复的字母。思路:关键在于如何快速判断两个单词没有相同的字母。这里用到了位运算,将单词看作是字母的集合,用位运算快速求出交并补的结果。class Solution {public: int maxProduct(vector& words) { vector w(words.size(), 0);

2017-03-27 04:47:09 284

原创 Leetcode Binary Watch

题意:手表用二进制显示时间,给出亮灯的个数,求可能的时间。思路:枚举子集的个数。这里数量较小,直接用二进制枚举。class Solution {public: vector readBinaryWatch(int num) { vector h(4, 1); for(int i = 1; i < h.size(); i ++ ) {

2017-03-12 02:42:40 218

原创 Leetcode Find Median from Data Stream

题意:找出一列数组中的中位数。思路:使用multiset,并维护一个指针,指向中位数,根据新加入的数的大小来向左向右移动指针。class MedianFinder {public: /** initialize your data structure here. */ MedianFinder() { mid = INT_MIN; cout

2017-03-11 09:35:33 196

原创 Leetcode Evaluate Division

题意:在已知一系列方程的条件下,求另一些方程的值。题目保证方程不会冲突。思路:将方程归类,有关联的归到一类。这部分用并查集实现。按一定顺序求解方程,这里用了变量名的字典序。class Solution { struct eq { string nums; string divs; double val; };public:

2017-03-11 08:19:03 289

原创 Leetcode Minimum Window Substring

题意:给出一个字符串,求出其子串中包含能组成给定字符串的最短子串。思路:先用hash map判断是否包含。枚举以每个字母结尾的子串。用一个指针指向该子串的启示位置。class Solution {public: string minWindow(string s, string t) { string temps = ""; map testa;

2017-03-07 15:11:58 240

原创 Leetcode Minimum Size Subarray Sum

题意:找出最短的连续数列,使其各项之和大于给定值。思路:先判断是否存在这样的数列。枚举以每一个元素结尾的满足条件的最短数列,枚举的时候保持一个指针,指向满足条件数列开始的位置。class Solution {public: int minSubArrayLen(int s, vector& nums) { vector p(nums.size(), -1);

2017-03-07 13:47:15 178

原创 Leetcode Surrounded Regions

题意:将被包围的O改成X。思路:按边深度搜索。class Solution {public: int h, w; void solve(vector>& board) { h = w = 0; h = board.size(); if(h) w = board[0].size(); for(int i = 0

2017-03-07 12:56:36 184

原创 Leetcode Best Time to Buy and Sell Stock with Cooldown

题意:给出每个时刻股票的价格,每天只能买入或卖出,买入或卖出后第二天不能交易。思路:DP,dp[i][j] 表示在第i天买入,第j天卖出的最大利润,转态方程为:dp[i][j] = max(dp[i][j - 1],  max(dp[i - 2][k])。class Solution {public: int maxProfit(vector& prices) {

2017-03-02 11:30:07 236

原创 Leetcode Minimum Absolute Difference in BST

题意: 找出一棵数中, 各结点之差绝对值的最小值。思路:dfs遍历,排序后,比较相邻元素的之差绝对值的大小。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(

2017-03-02 06:01:19 224

空空如也

空空如也

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

TA关注的人

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