自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (3)
  • 收藏
  • 关注

原创 LeetCoder_____ 组合总和 II(40)

1. 思路和前一个题目类似,只不过这里要求每个数只能用一次。所以这里我们需要先将数组排序。然后dfs递归的时候保证不选取重复的数字即可。2.代码class Solution {public: vector<vector<int>> combinationSum2(vector<int>& candidates, int target)...

2019-10-29 11:08:47 107

原创 LeetCoder_____ 组合总数(39)

1. 思路这个题目其实也是标准的dfs,由于每个数可以重复选择,所以每次选择都是从数组的第一个选到最后一个。我看题解有人用dp再做,其实dp在这个题目上并不讨巧。原因是要记录1~target的所有组合,空间开销一定大。当target很大的时候,时间复杂度也很大。2.代码class Solution {public: vector<vector<int>&gt...

2019-10-29 11:06:43 168

原创 LeetCoder_____ 报数(38)

1. 思路这个题目有点绕口,不好理解。其实意思就是告诉你第一项为1,第二项就是对第一项报数,第n项的结果就是对前一项报数。报数的规则如题。这种用递归做代码再简单不过了,由于是尾递归,所以也没有栈开销。2.代码class Solution {public: string countAndSay(int n) { return n == 1 ? "1" : sa...

2019-10-29 11:03:42 108

原创 LeetCoder_____ 解数独(37)

1. 思路深搜dfs,通过vis1, vis2, vis3 分别记录行、列、3x3宫格出线的数字。2.代码class Solution {public: void solveSudoku(vector<vector<char>>& board) { bool vis1[10][10] = {0}, vis2[10][10] = {0...

2019-10-29 11:01:09 130

原创 LeetCoder_____ 有效的数独(36)

1. 思路简单题目,统按需统计即可。2.代码class Solution {public: bool isValidSudoku(vector<vector<char>>& board) { for(int i = 0; i < 9; i ++) { bool vis1[10] = { ...

2019-10-29 10:59:32 123

原创 LeetCoder_____ 在排序数组中查找元素的第一个和最后一个位置(34)

1. 思路标准的二分查找模板,查找左边界和右边界2.代码class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int l, r; vector<int> ret; l = 0; r =...

2019-10-28 09:24:39 251

原创 【转载】二分查找算法细节详解

文章出处:二分查找算法细节详解思路我相信对很多读者朋友来说,编写二分查找的算法代码属于玄学编程,虽然看起来很简单,就是会出错,要么会漏个等号,要么少加个 1。不要气馁,因为二分查找其实并不简单。看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的:Although the basic idea of binary search is comparatively straightfor...

2019-10-28 09:13:15 165

原创 LeetCoder_____ 搜索旋转排序数组(33)

1. 思路通过二分查找找到翻转点,然后再在两边进行二分查找。2.代码class Solution {public: int search(vector<int>& nums, int target) { int l, r, point = -1, size = nums.size() - 1; l = 0, r = size; ...

2019-10-25 12:17:35 140

原创 LeetCoder_____ 下一个排列(31)

1. 思路这个题目其实就是找规律,多列几组数据就会发现:从右到左找到第一个S[i] < S[i+1]的位置,然后将S[i] ~ S[n]从小到大排序,再将S[i] ~ S[n]中第一个大于S[i]的数和S[i]交换即可。2.代码class Solution {public: void nextPermutation(vector<int>& nums...

2019-10-22 23:59:15 124

原创 LeetCoder_____周赛(159)

1.缀点成线(5230)题目链接: 5230. 缀点成线这个题目做过很多次了,其实考察点就是用斜率判断三个点是否在一个直线上的时候要化除法为乘法,只不过还需要注意的是乘法是否会溢出,不过这个题目给的数据范围保证了不会溢出。class Solution {public: typedef long long ll; bool checkStraightLine(vecto...

2019-10-20 23:39:46 192

原创 LeetCoder_____ 最长有效括号(32)

1. 思路A一般来说括号这种匹配的一般都是用栈来验证,但是这里如何统计最长有效的括号呢?下面给出一种方法:准备栈A和数组B,逐个读入字符串字符c,如果栈顶元素和当前字符c不可以匹配’(’ 和 ‘)’;那么就将当前字符压入栈,并且在数组B中追加一个0;如果可以匹配,那么就将栈顶元素弹出,并且将栈顶对应压入B数组的0改为2。最后统计B数组中连续不为0的数的和即可。拿"(())(()"举例子...

2019-10-19 10:06:00 201

原创 LeetCoder_____ 两数相除(29)

1. 思路以前在其他地方做过这个题目,不仅考察如何替代除法,而且还考察各种溢出的边界情况。首先说下如何代替除法:很简单容易想到的就是使用减法,但是减法效率太低。根据上面的思路我们可以想到利用左移右移来加快算法,核心思路如下:/*我们可以把一个dividend(被除数)先除以2^n,n最初为31,不断减小n去试探,当某个n满足dividend/2^n>=divisor时, 表...

2019-10-16 22:12:49 127

原创 LeetCoder_____ K 个一组翻转链表(25)

1. 思路相对前面那个链表两两翻转升级了一下, 不过我做链表题目喜欢用递归,但是递归函数调用时间开销、栈内存开销都相对循环比较大哈哈。整体思路不变,核心的翻转部分使用头插法来翻转链表。2. 代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *nex...

2019-10-14 13:47:13 111

原创 LeetCoder_____丑数 III(1201)

1. 思路相比原来的找第n个丑数升级了一些,n很大决定了不能够递推。不过这里有个规律就是随着n增大,0~n里面的丑数个数是递增序列(不下降序列)。所以我们可以将A[i] 表示为0 ~ i中丑数的个数,那么A数组就是一个递增数组;原题就是找A数组中第一个为n的元素下标(其实就是找第n个丑数)。在有序序列里面找一个元素,很容易想到二分。注意:如何算0~i中有多少个丑数呢?其实就是一个容斥定理...

2019-10-14 10:54:53 315

原创 LeetCoder_____周赛(158)

1.分割平衡字符串(5222)题目链接: 5222. 分割平衡字符串题目和括号匹配类似,扫描字符串,遇到L就+1,遇到R就-1,那么平衡字符串的时候一定为0。class Solution {public: int balancedStringSplit(string s) { int score = 0; int ret = 0; ...

2019-10-13 17:15:39 126

原创 LeetCoder_____两两交换链表中的节点(24)

1. 思路看题意,很简单,可以一个for循环两两交换,需要注意的是处理链表节点next的连接,但是这里也有简洁的方法,我们把相邻两个节点的交换看做是一次操作,那么我们只需要使用递归,那么将这一次操作递归下去就可以完成整个链表的操作了。2. 代码/** * Definition for singly-linked list. * struct ListNode { * int ...

2019-10-11 23:56:02 97

原创 LeetCoder_____合并K个链表(23)

1. 话外工作之后好久没有刷Leetcode,今天发现已经有中文官网了,好的地方是看题不需要Google翻译了。2. 思路看题意,很简单是个归并排序,不过真的是一直沉迷业务代码,好久没有写过算法,竟一时有点“卡住”,不过还好很快就能写出来。这个题目在时间算法度O(nlogk)的要求下,主要有两个实现思路:每次取K个链表头中最小的一个加入到新链表中,每次比较K,一共N次比较。复杂度是O...

2019-10-09 23:32:34 137 1

Unity3D火焰粒子特效

使用Unity3D自带的粒子系统制作的火焰粒子特效。。。。

2018-05-18

LitJson.dll

LitJson库,用于json的序列化和反序列化

2016-09-15

基于Opencv植物大战僵尸游戏源码

基于opencv\C++语言实现的植物大战僵尸游戏部分源码.

2015-08-09

空空如也

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

TA关注的人

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