自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 【leetCode】48_旋转图像

class Solution {public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); for (int i = 0; i < n / 2; i ++) { for (int j = i; j &lt...

2020-01-23 23:07:51 148

原创 【leetCode】28_实现strStr()

主要是回顾一下kmp算法。kmp分两个步骤,1,找next数组;2,匹配。kmp之所以困惑的重要原因就在于,不知道找next数组的时候实在干什么。这里用一句话说明白:找next[i],其实是在找,使得pattern[0:k)==pattern[i - k: i)的最大的k(注意是左闭右开区间)。done!为什么要找这个使得i 前的 k 个字符和pattern从0开始的 k 个...

2020-01-23 16:08:12 156

原创 【leetCode】37_解数独

和8皇后完全一样。class Solution {public: void solveSudoku(vector<vector<char>>& board) { dfs(board); } bool dfs(vector<vector<char>>& board){ ...

2019-11-10 16:10:36 178

转载 SSH暴力破解预防

日,自己的server碰到个傻子暴力破解我的ssh,只好借鉴了一个哥们的博文把这种人干掉。https://blog.csdn.net/z13615480737/article/details/83028304

2019-10-14 23:28:13 147

原创 【HDU】2544_最短路

Dijkstra/*ID :LANG: C++11TASK: maze1 */#include <iostream>#include <cstring>#define NN 105using namespace std;int main(){ int N, M; int a[NN][NN] = {}; int minDi...

2019-09-22 21:33:49 100

原创 【leetCode】231_滑动窗口最大值

class Solution {public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { deque<int> dq; vector<int> ans; for (int i = 0; i < k; i +...

2019-09-22 21:06:24 144

原创 Flask工厂模式下与Celery的结合

本文主要解决的问题是Celery依赖Flask的appcontext,但是在Flask工厂模式下会出现循环import的问题。在工厂函数取得flask app的后边加一句,一共两句。flask_app = create_app(FLASK_CONFIG) # 工厂函数得到flask appflask_app.app_context().push() # 推一个appcontex...

2019-07-24 14:10:35 916 1

原创 【leetCode】42_接雨水

传统stack。还有更快的办法是:扫描出各个点左右的最高墙,从而得到该点的水柱高度。加总。class Solution {public: int trap(vector<int>& height) { typedef int Height, IndX; typedef pair<Height, IndX> Wall;...

2019-04-12 13:12:05 113

原创 【leetCode】135_分发糖果

class Solution {public: int candy(vector<int>& ratings) { int sum = 0; vector<int> candies; candies.push_back(1); for (int i = 1; i < ratings.s...

2019-04-06 16:17:06 188

原创 【leetCode】33_搜索旋转排序数组

算是对二分的强化练习吧,第一种办法是先二分找到旋转点,再分别在两段内二分,看了别人的觉得这样更简洁。简单谈一下二分:二分需要注意的是,mid赋值给left和right的时候,其实是判定mid是否是left子集或者right子集元素的过程。比如再排序好的数组内找寻target,那么满足e<target的e就是left子集的元素。所以left或者right的其中一个会停留在第一个不满...

2019-04-06 15:55:07 126

原创 【ML】信息熵最值,不等式解法

2018-12-02 22:20:19 2222

原创 【leetCode】134_加油站

class Solution {public: int canCompleteCircuit(vector&lt;int&gt;&amp; gas, vector&lt;int&gt;&amp; cost) { int left_oil = 0; int pos = 0; int num = gas.size(); int...

2018-10-13 15:40:59 244

原创 【leetCode】32_最长有效括号

先贴一个抄的代码,贪心吧算是。class Solution {public: int longestValidParentheses(string s) { int n = s.size(); if(n == 1) return 0; if(n == 2){ if(s[0] == '('...

2018-10-12 14:42:16 264

原创 【leetCode】19_删除链表的倒数第N个节点

class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode *H = new ListNode(0); H-&gt;next = head; ListNode* removeP = H, *tail = H; fo...

2018-10-12 13:36:53 147

原创 【leetCode】18_四数之和

双指针法。class Solution {public: vector&lt;vector&lt;int&gt;&gt; fourSum(vector&lt;int&gt;&amp; nums, int target) { vector&lt;vector&lt;int&gt;&gt; ans; sort(nums.begin(), nums.end...

2018-10-12 13:15:05 193

原创 【leetCode】55_跳跃游戏

2018年10月12日更新一下,最简单的思路代码直观得很。抄的,哈哈。class Solution {public: bool canJump(vector&lt;int&gt;&amp; nums) { int Maxreach=0; for(int i=0;i&lt;nums.size();i++){ if(i&gt;...

2018-10-11 19:39:04 185

原创 【leetCode】14_最长公共前缀

class Solution {public: string longestCommonPrefix(vector&lt;string&gt;&amp; strs) { string ans; if (strs.size() == 0){ return ans; } int i = 0; ...

2018-10-11 18:53:06 173

原创 【leetCode】16_最接近的三数之和

思路:先选定一个数,然后用经典的寻找两数之和的做法。详细展开经典的寻找两数之和的做法。问题是:一个数组nums,一个数target,找到nums的两个数的和与target最接近。方法是nums排序,然后l指向0,r指向nums.size();如果nums[l] + nums[r] &lt; target, l ++;如果nums[l] + nums[r] &gt; target, r ...

2018-10-11 18:26:11 148

原创 【leetCode】45_跳跃游戏2

思路:一句话的话就是,我们现在站在pos点,下一个我们到达的点是next_pos,这个点是怎么选出来的呢?next_pos是,(pos走一步能到达的点再往前走一步能走到最远)的pos走一步能到达的点。这种点可能不止一个,我选择的是距离pos最远的点,但我觉得哪一个都可以。 pos是当前点,记集合S为 ,即pos能到达的点的集合。我们的下一个起点为next_pos,里边的ma...

2018-10-10 17:20:52 360

原创 【leetCode】44_通配符匹配

dp:class Solution {public: bool isMatch(string s, string p) { //tag 用于dp,tag[i][j]代表s的子串s[0,i-1] 可以匹配 p的子串p[0,j-1]。 bool ** tag = new bool*[s.length() + 1]; for (int i ...

2018-10-10 08:58:26 293

原创 【leetCode】31_下一个排列

思路就是找到可以变大的最低位,进一步说,就是找到,nums[pos]满足,存在q使得,q &gt; pos 且 nums[pos] &lt; nums[q]。同时要注意的是,最终的答案要取q的下界。这是因为要找刚刚好比所给数字大的数字,所以我们要使得pos位,增大的尽量小。class Solution {public: void nextPermutation(vector&lt;...

2018-10-10 08:46:21 157

原创 【leetCode】30_与所有单词相关联的字串

代码过不了样例173,很恶心的一个样例,对他进行了特殊优化过了,优化就是,知道他是啥,然后直接判断,O(∩_∩)O。而且我这个代码一开始没注意到words里的单词长度是相同的这件事。(谁让他样例2中给的words里是student和word,长度也不一样。)思路是深搜。class Solution {public: int t_length; int s_lengt...

2018-10-06 12:29:55 281

原创 【leetCode】29_两数相除

class Solution { int temp, length; public int divide(int dividend, int divisor) { Boolean tag = divisor &gt; 0 &amp;&amp; dividend &gt; 0 || divisor &lt; 0 &amp;&amp; dividend &lt; ...

2018-10-06 12:24:35 165

原创 【leetCode】25_k个一组翻转链表

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {    public ListNode reverseKGr...

2018-10-06 12:21:10 213

原创 【leetCode】23_合并k个排序链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: typedef pai...

2018-09-09 01:14:21 116

原创 【USACO】Overfencing

/*ID :LANG: C++11TASK: maze1 */#include&lt;iostream&gt;#include&lt;string&gt;#include&lt;queue&gt;using namespace std;int main(){ freopen("maze1.in", "r", stdin); freopen("maze1...

2018-09-01 23:39:48 252

转载 【leetCode】891_子序列宽度之和

难点有两个,一个是思路,一个是算法的数学简化。思路就是先确定子序列的最大值和最小值,然后直接算出来中间塞其他数字有多少种。具体操作起来就是,序列排序,然后两个指针指向最大和最小值,这两个值中间的数个数为n,则中间这些数能做出来的集合数量 = C(n, 0) + C(n, 1) + C(n, 2) + ... + C(n, n - 1) + C(n, n) = (1 + 1)^n; 以上就是...

2018-08-25 22:03:15 578

原创 【leetCode】15_三数之和

class Solution {public: vector&lt;vector&lt;int&gt;&gt; threeSum(vector&lt;int&gt;&amp; nums) { vector&lt;vector&lt;int&gt;&gt; ans; vector&lt;int&gt; t; sort(nums.begin(...

2018-08-25 21:56:02 313

原创 【leetCode】13_罗马数字转整数

class Solution {public: int count(const int &amp;N){ int t = 1; int n = N - 1; while(n &gt;= 10){ t *= 10; n /= 10; } return t; ...

2018-08-24 16:55:26 174

原创 【leetCode】12_整数转罗马数字

class Solution {public: string intToRoman(int num) { string ones[4] = {"I", "X", "C", "M"}; string fives[4] = {"V", "L", "D"}; string ans[4] = {}; i

2018-08-24 16:30:48 191

原创 【leetCode】11_盛最多水的容器

算是运用了贪心的思想。正常的贪心思想是:每一步贪心更好的情况。此题的贪心思想是:每一步贪心有可能更好的情况,这时候,结果的变化就是非单调的,所以,要设置一个变量来记录过程中的最优值。左右两个板子的位置我们记为 i 和 j ,长度记为Li 和Lj, 那么就得到盛水的水量 v = (j - i) * min(Lj, Li)。算法是:选择较短的板子,将对应的位置向中心移动一格,重新计算此时的容水量,...

2018-08-24 16:29:18 137

原创 【leetCode】10_正则表达式匹配

这道题花了功夫,所以把想到的的写下来。这个要从字符串的屁股开始匹配。道理很简单,从正面匹配,匹配的方式很多,需要全部枚举,不利于缩小问题规模,举个例子,aac和a*a*a*c,从正面开始匹配,从全部需要枚举的匹配情况中举几个例子:aac匹配a*a*a*c,匹配a*a*a*c,匹配a*a*a*c。从屁股开始匹配的话,则可以以几乎确定的方式缩小问题规模。还是aaa和a*a*a*a,第一次,必然...

2018-08-22 21:02:33 200

原创 【leetCode】9_回文数

class Solution {public: bool isPalindrome(int x) { int n = x; string s; stringstream ss; ss &lt;&lt; n; ss &gt;&gt; s; int length = s.length(); ...

2018-08-22 20:44:42 107

原创 【leetCode】8_字符串转整数

class Solution { public int myAtoi(String str) { int tag = 1; int ans = 0; int i = 0; if (str.isEmpty()) return 0; while (str.charAt(i) == ' ')...

2018-08-18 18:06:42 143

原创 【leetCode】6_Z字型变换

class Solution { public String convert(String s, int numRows) { String ans = ""; int length = s.length(); for (int i = 0; i &lt; numRows; i ++){ int j = i; ...

2018-08-18 17:21:07 180

原创 【leetCode】7_反转整数

class Solution { public int reverse(int x) { int y = 0; int ty = 0; int pn = x &gt; 0? 1:-1; while (x != 0){ ty = y; y *= 10; i...

2018-08-17 16:15:06 585

原创 【leetCode】5_最长回文字符串

class Solution { public String longestPalindrome(String s) { int maxLength = 0, ti = 0, tj = 1; int strlen = s.length(); int[][] dp = new int[strlen + 5][strlen + 5]; ...

2018-08-17 16:14:06 210

原创 【leetCode】4_两个排序数组的中位数

class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int m = nums1.length, n = nums2.length; int p1 = 0, p2 = 0; int ending = (m + n - 1) / 2 ...

2018-08-16 16:00:31 138

原创 【leetCode】3_无重复的最长子串

class Solution { boolean[] alpha = new boolean[257]; public void resetAlpha(){ for (int i = 0; i &lt; 257; i ++){ alpha[i] = false; } } public int lengthOf...

2018-08-16 15:59:28 140

原创 【leetCode】2_两数相加

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode addTwoNumb...

2018-08-16 15:57:51 186

空空如也

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

TA关注的人

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