自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

关于学习本身

很久不在

  • 博客(204)
  • 问答 (1)
  • 收藏
  • 关注

原创 网络信息安全学习平台脚本关-第五关

网络信息安全学习平台脚本关-第五关 地址这道题模拟登陆页面,查看源代码发现有,username, pwd ,vcode, 其中username已经给出,且提示pwd为四位数的数字,下面有验证码 用python写一个脚本自动的跑1000~10000的密码,暴力破解,据说验证码不会过期所以,获取一个验证码之后一直用这个验证码然后跑密码登陆,获取返回的页面,直到返回页面没有错误,则说明得到了密码,至

2016-11-30 22:28:32 1195

原创 leetcode-Contains Duplicate III-220

输入一个数组,求是否存在abs(i-j)<=k使得abs(nums[i]-nums[j])<=t 既要比较元素值又要比较下标,可以二重循环,但是这题的本意肯定不在此 我的做法: set自定义数据类型和比较函数,如果nums[i]不同就按照升序排列,如果nums[i]相同按照下标降序排列 然后用两个指针,开始都指向开头,it指向当前判断的元素,it2指向it之前的元素: 1.如果it和it2

2016-09-02 14:15:19 618

原创 leetcode-Longest Substring Without Repeating Characters-3

找出字符串的最长不重复子串的长度 直观的做法是枚举以每个元素为开头的最长不重复子串,更新长度,时间复杂度是ON^2,空间O1 更高效的做法:用一个hash表保存每个字符最后出现的下标,用一个指针i,表名当前最长不重复子串的首位置,遍历字符串,在hash表中找到当前字符最后一次出现的位置记为k,如果k>=i,说明当前字符在当前最长不重复子串中出现过了,那么更新i和hash[s[j]]。只需遍历一遍

2016-08-29 00:10:16 571

原创 leetcode-Reverse Bits-190

输入一个无符号整数,求按位逆向之后的结果。位运算class Solution {public: uint32_t reverseBits(uint32_t n) { int ans=0; for(int i=1;i<=32;i++){ ans<<=1; if(n&1) ans++; n>

2016-08-28 22:15:21 612

原创 leetcode-House Robber-198(dp)

输入一个数组,每个元素代表每个房子的价值,不能抢相邻的两个房子,求抢劫的最大值 和这道二叉树的树形dp是一个系列: http://blog.csdn.net/AC_0_summer/article/details/52210957 也是维护两个dp,dp1[i]表示抢第i个房子,dp2[i]表示不抢第i个房子; dp1[i]=dp2[i-1]+nums[i];dp2[i]=max(dp1[i

2016-08-28 22:02:23 609

原创 leetcode-Best Time to Buy and Sell Stock-121

a[i]代表第i天商品的价格,问如果我买入一次再卖出一次,能得到的最大利润。 直观的做法是二重循环,枚举第i天买入,然后枚举大于第i天卖出,计算利润更新最大值。 利用贪心思想可得线性做法:假设第i天买入,那么肯定选第i天以后商品价格最大的那天卖出,因此从后往前遍历,更新最大的价格,同时减去当前价格就是当天买入能得到的最大利润,只需遍历一遍。class Solution {public:

2016-08-27 21:08:23 581

原创 leetcode-House Robber III-337(树形dp)

The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the “root.” Besides the root, each house has one and only one parent house. After a tour,

2016-08-15 14:36:05 962

原创 滑动窗口的最大值

给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5} 典型的单调队列题目,移动的固定区间求最值。 本题维护一个递减的单调队列(双端队列),注意单调队列维护的是数组的下标,也就是位置,这样才能记录窗口外的(生命周期结束)元素,将它们移出队列;即

2016-08-08 18:25:12 1233

原创 顺时针打印矩阵

不难,就是麻烦class Solution {public: vector printMatrix(vector > matrix) { vector ans; int n=matrix.size(); if(n==0) return ans; int m=matrix[0].size(); int i=

2016-07-31 16:32:24 502

原创 二叉树的镜像

根据题意,应该先镜像子树再向上镜像,所以就是一个后续遍历/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public:

2016-07-31 15:39:52 377

原创 树的子结构

判断第二个树是不是第一个树的子结构。空树不是任何树的子结构。第一步:前序遍历找节点和第二个树的根一样的,进入第二步第二步:递归判断根是否相同,左子树是否相同,右子树是否相同。递归退出条件是:若第二个树的节点为NULL,返回true,若第一个树的节点为空返回false.这两个条件不能反/*struct TreeNode { int val; struct TreeNode *lef

2016-07-31 15:30:17 582

原创 set自定义比较函数

#include#include#include#include#include#include#includeusing namespace std;struct node{ string s; int cnt; int time; node(){ } node(string a,int b,int c):s(a),cnt(b),time(c){ }// boo

2016-07-31 08:47:23 2052

原创 合并两个排序的链表-奇怪的RE

leetecode也有一道http://blog.csdn.net/ac_0_summer/article/details/51549611这题有奇怪的RE,下面两段代码只是对头的处理一个一开始就做,一个在循环里用条件判断语句做。第一段代码的head没有显示赋值为NULL,没有报错,但是第二段代码若不写head=NULL,则一直RE。太奇怪了,当然,结构体中确实没有默认构造函数,以后记着都把指

2016-07-29 20:11:08 468

原创 VS2013_MFC编程问题

1.在打开资源视图的时候,提示说“资源被另一个编辑器打开”解决方案菜单“窗口”,选择“关闭所有文档”再次打开

2016-07-20 19:31:02 714

原创 leetcode-Wiggle Sort II-324

对数组进行摆动排序排序、分成两半、依次从两段的后端往前取数 O(nlgn)  空间:O(n)class Solution {public: void wiggleSort(vector& nums) { sort(nums.begin(), nums.end()); int mid=(nums.size()+1)/2; int s=

2016-07-19 23:07:21 492

原创 leetcode-Intersection of Two Arrays II-350

求模板类的交集,这次是真正的交集,不删除重复元素原先想把两个模板类的元素放进multiset中,然后用set_intersetion求交集,但是OUTPUT LIMIT EXCEED,可能是输出的容器容量小的原因(猜测)所以只能用笨办法/*1,1,2,3,4,4 这题要注意的是这种情况1,4,4,4*/class Solution {public: vector in

2016-07-19 21:49:41 462

原创 leetcode-Intersection of Two Arrays-349

这题的意思其实是求集合的交集,就用set,之后函数返回再用vector的构造函数把set转化成vector。http://www.cnblogs.com/grandyang/p/5507129.htmlclass Solution {public: vector intersection(vector& nums1, vector& nums2) { set s(nu

2016-07-18 23:26:43 320

原创 vs2013封装string类

1.新建项目:控制台程序2.在解决方案窗口的源文件或者头文件目录上右键:添加、新建项。创建新的源文件或者头文件3.开始编码error:1.error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用以下引用自https://www.douban.com/note/246066317/产生这个问题可能的原因

2016-07-18 09:43:25 1396

原创 leetcode-Plus One-66

将vector的加一,主要是vector的用法。直接用insert,不需要重新申请一个数组class Solution {public: vector plusOne(vector& digits) { int c=1; for(int i=digits.size()-1;i>=0;i--){ int tmp=digits[i]

2016-06-11 00:00:53 340

原创 leetcode-Merge k Sorted Lists-23(未完待续)

合并k个有序链表每次合并相邻两个就行,直接用一趟归并排序的函数,时间k*max(length),空间ON,因为在一趟归并排序时要用一个单独的链表存储结果/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(in

2016-06-09 17:05:57 525

原创 leetcode-Sort List-148

用NlgN的时间对链表进行排序,对空间没有要求。这个复杂度有归并排序和快排,但是快排要求从两头扫描,链表做不到归并排序:两个两个一组排,之后再四个四个一组排,最后是两个有序表合并,递归/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next

2016-06-09 16:52:04 479

原创 leetcode-Odd Even Linked List-328

把链表的第奇数个节点方在一起,第偶数的节点在后半部分,要求空间O1,时间ON看的这位网友的,思考为什么这样空间是O1http://www.cnblogs.com/pkuYang/p/5135542.html/** * Definition for singly-linked list. * struct ListNode { * int val; * Lis

2016-06-09 15:37:59 369

原创 leetcode-Delete Node in a Linked List-237

一开始没读懂题题意是没有给链表,只给一个节点并保证这个节点不是最末尾的,要求删除这个节点做法是将后一个节点的内容(值和next)复制给这个节点,然后删除后一个节点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * List

2016-06-09 00:42:50 320

原创 leetcode-Insertion Sort List-147

插入排序。空间O1,时间ON^2注意指针使用,RE了几次/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Sol

2016-06-09 00:31:22 373

原创 leetcode-Reorder List-143

Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For example,Given {1,2,3,4}, reorder it to

2016-06-08 22:16:21 403

原创 leetcode-Linked List Cycle II-142

返回有环的链表的环开始的节点。这位网友写得很好http://www.cnblogs.com/x1957/p/3406448.html/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) :

2016-06-08 21:33:08 362

原创 leetcode-Reverse Linked List II-92

画图思考有两个端点,所以要四个指针保存考虑m=1和n=len情况/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */cla

2016-06-06 22:38:38 567

原创 leetcode-Partition List-86

1.把链表中小于x的节点归到前部分,大于等于x的节点在后一部分。不改变前半部分和后半部分内部节点的相对位置2.这题要画图理解指针!!看代码思考3.我的做法是创建两个新的链表,分别将小于的和大于等于的串起来,最后将两个链表连接。空间复杂度ON,时间复杂度ON,遍历一遍链表。/** * Definition for singly-linked list. * struct ListNo

2016-06-06 20:52:03 424

原创 leetcode-Remove Duplicates from Sorted List II-82

只留下链表中出现了一次的节点。也只需要遍历一遍,只是要多用一个指针prere,当遇到出现两次以上的节点时方便回退。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(N

2016-06-05 23:46:49 388

原创 leetcode-Rotate List-61

链表向右移动k位。先成环,然后在len-k处打断。遍历两遍,第一遍找到尾指针,第二遍找到第len-k个节点,将循环链表打断/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), ne

2016-06-05 23:28:48 367

原创 leetcode-Add Two Numbers-2

两个链表代表两个非负数,求和。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:

2016-06-05 23:05:37 328

原创 leetcode-Palindrome Linked List-234

用ON的时间复杂度和O1的空间复杂度判断链表是否为回文。参照网友的博客,用快慢法求得链表中点,然后逆向后半段链表,之后比较就好了。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x)

2016-06-05 22:39:15 431

原创 leetcode-Reverse Linked List-206

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

2016-06-05 22:16:39 307

原创 leetcode-Remove Linked List Elements-203

删除指定值的节点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: Li

2016-06-05 11:39:10 364

原创 leetcode-Intersection of Two Linked Lists-160

网上看到两种方法:1.找出两个链表的长度,然后长的那个先走lenmax-lenmin步,之后一起遍历,找到相同的就返回。这个得遍历两次链表。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) :

2016-06-05 00:57:36 339

原创 leetcode-Linked List Cycle-141

确定链表是否有环。经典题目,有环是说尾指针指向了链表中的某个节点。用两个指针,一个走两步,一个走一步,如果相遇就说明有环,就是一个周期的问题。如果没有环,走两步的指针走到头就结束遍历,如果有环,两个指针相遇了就结束。如果有环,要走多久有空自己算一下。/** * Definition for singly-linked list. * struct ListNode { * int

2016-06-05 00:13:07 385

原创 leetcode-Remove Duplicates from Sorted List-83

删除重复的节点。只需要遍历一遍。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public

2016-06-04 23:32:03 307

原创 leetcode-Swap Nodes in Pairs-24

将链表的相邻两个节点交换。看的网友chkkch的博客。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Soluti

2016-06-04 19:25:43 341

原创 leetcode-Merge Two Sorted Lists-21

又是一个经典的问题,合并两个有序的链表。用归并排序,两个指针分别扫描一遍。复杂度O(n)。链表、指针的使用要小心。顺序很重要。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x),

2016-05-31 22:37:38 426

原创 leetcode-Valid Parentheses-20

判断一串括号是否有效。栈的经典用法。class Solution {public: bool isValid(string s) { stack st; int len=s.length(); for(int i=0;i<len;i++){ if(s[i]==']'||s[i]==')'||s[i]=='}'

2016-05-31 20:53:59 280

空空如也

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

TA关注的人

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