自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(310)
  • 资源 (4)
  • 收藏
  • 关注

原创 LeetCode-90-Subsets II(回溯)-Medium

题意理解:同题78,但所给数列中可能存在重复元素;题目分析:1. 解题思路同题78;2. 在同级遍历中,如果发现当前元素在之前已出现,则跳过;解题代码:public class Solution { private ArrayList> ans= new ArrayList>(); private boolean find(int[

2016-03-26 22:45:08 766

原创 LeetCode-89-Gray Code(模拟/递归)-Medium

题意理解:1. 列举出n位的所有格雷码;2. 列举顺序必须按照示例中的顺序;题目分析:1. 找规律:1)1位的格雷码为012)n位的格雷码为n-1位格雷码的集合Set1,加上n-1位格雷码的集合最左侧添加一个1 Set2,其中,Set2中的元素为Set1中元素的从后向前的遍历结果,如000001---------011010-----

2016-03-26 12:24:16 670

原创 LeetCode-88-Merge Sorted Array(归并)-Easy

题意理解:合并两个已排序数组;题目分析:1. 典型合并算法;2. 注意当某一数元素在新的排列中已排列完的边界情况处理;解题代码:public class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int len=m+n;

2016-03-24 09:07:48 563

原创 LeetCode-86-Partition List(链表)-Medium

题意理解:对应给定链表list,和数值val,将先前链表内容重排序,结果使得,小于val的值在左边,大于等于val的值在右边;题目分析:使用两组指针,分别标示小于val的链表,和大于等于val的链表,然后将两个链表合并;解题代码:/** * Definition for singly-linked list. * public class ListNode

2016-03-23 09:13:44 526

原创 LeetCode-82-Remove Duplicates from Sorted List II(链表)-Medium

题意理解:删除链表中所有连续重复的项(当前元素和被重复元素一删除);题目分析:1. 使用双指针,其中,一个指针标示前面未发生重复的元素位置,一个指针标示当前位置,然后,从左向右处理;2. 注意第一个指针的状态改变判定;解题代码:/** * Definition for singly-linked list. * public class ListNode

2016-03-22 08:58:42 836

原创 LeetCode-83-Remove Duplicates from Sorted List(链表)-Medium

题意理解:删除链表中的重复项;题目分析:使用双指针分别记录当前位置和先前位置,然后比较当前值是否与先前值重复,进而进行删除重复项操作;解题代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; *

2016-03-21 08:33:33 393

原创 LeetCode-80-Remove Duplicates from Sorted Array II(递归)-Medium

题意理解:题意同26题,只是运行可以有两个相同的元素;题目分析:递归处理;解题代码:public class Solution { private static final int MAX_TIMES=2; private void erase(int[] nums, int pos, int size){ for(in

2016-03-20 15:57:53 312

原创 LeetCode-79-Word Search(回溯法)-Medium

题意理解:求解给定字符串str,是否在字符矩阵array中。要求str中相邻的两个字符,在array中也是相邻字符,并且要求,array中的同一字符,不能使用两次;题目分析:1. 使用回溯法;2. 注意array中同一字符不能使用两次;解题代码:public class Solution { private class Pair{ p

2016-03-20 15:07:55 1715

原创 LeetCode-78-Subsets(回溯法)-Medium

题意理解:假定给定数组Array,其中Array的容量为N。求解,每次从Array中取出0-N个数的取法;题目分析:1. 同77(77题的变种,可以使用77题的核心算法代码);2. 注意要对给定数组做升序排列;解题代码:public class Solution { private ArrayList> ans= new ArrayList>();

2016-03-20 13:01:02 723

原创 LeetCode-77-Combinations(回溯法)-Medium

题意理解:列举从1-n中取出k个数的全部情况(如,[1, 2, 3]中取2个数的结果为[1, 2] [1, 3] [2, 3]);题目分析:使用回溯法(深度遍历+剪枝);解题代码:public class Solution { private ArrayList> ans= new ArrayList>(); private void

2016-03-20 12:46:52 483

原创 LeetCode-75-Sort Colors(双指针)-Medium

题意理解:将021201混杂排序的数组,最终整理为001122类型的数组结果;题目分析:1. 避免使用先计算0、1、2的个数,然后,再分别对数组进行重新赋值的方式进行解题;2. 使用双指针算法;解题代码:public class Solution { private void swap(int[] array, int x, int y){

2016-03-19 22:46:14 384

原创 LeetCode-74-Search a 2D Matrix(二分查找)-Medium

题意理解:查找数值target,是否在给定矩阵matrix中;题目分析:1. 二分查找;2. 先使用二分查找所在行,然后,使用二分查找当前行是否存在target;3. 注意相邻两项间的无限循环的边界处理(a解题代码:public class Solution { private int rowSearch(int rTop, int rBot,

2016-03-19 21:49:00 448

原创 LeetCode-73-Set Matrix Zeroes(数组)-Medium

题意理解:如果矩阵中某个点的值为0,则该点所在的行和列上所有的数均设置为0;题目分析:为了降低空间复杂度,需要在当前数组进行设置为0的操作:使用一个list记录所有值为0的位置,然后再对先前的数组进行对应行列设置为0的操作;解题代码:public class Solution { private class Pair{ publi

2016-03-19 20:40:14 806

原创 LeetCoce-71-Simplify Path(栈)-Medium

题意理解:简化路径名;题目分析:1. 注意 “.” 、".."特殊字符的处理;2. 运用栈;解题代码:public class Solution { public String simplifyPath(String path) { String ans="/"; if(path.length()==0){

2016-03-19 14:39:23 374

原创 LeetCode-70-Climbing Stairs(动态规划)-Easy

1. 题意理解每次可以上1个台阶或2个台阶,如果要上n个台阶,有多少种走法?2. 题目分析:1. 动态规划;2. 使用递归方法会超时:climbStairs(n)=climbStairs(n-1)+climbStairs(n-2);3. 使用非递归方式实现(动规要善用已计算结果);解题代码:public class Solution { publ

2016-03-19 13:17:05 816

原创 LeetCode-69-Sqrt(x)(二分法)-Medium

题意理解:实现sqrt()函数;题目分析:1. 典型的二分法;2. 注意使用long保留中间值,避免整数相乘出现溢出;解题代码:public class Solution { private int process(int left, int right, int val){ //System.out.println("left= "

2016-03-19 12:40:25 512

原创 LeetCode-67-Add Binary(数字/字符串处理)-Easy

题意理解:同66;解题思路:同66;解题代码:public class Solution { public String addBinary(String a, String b) { int longLen=a.length()>b.length()?a.length():b.length(); int[]

2016-03-19 12:04:18 365

原创 LeetCode-66-Plus One(水题/数值计算)-Easy

1. 题意理解用数组表示一个非负整数,求解该非负整数加一的结果,结果要求同样使用数组表示;2. 题目分析:1)注意最高位进位;2)注意数组的最低位为数值的最高位;3. 解题代码public class Solution { public int[] plusOne(int[] digits) { int len=digits.leng

2016-03-18 09:06:48 403

原创 LeetCode-64-Minimum Path Sum(动态规划)-Medium

1. 题意理解:对于MxN矩阵,求解从(0,0)点到(M-1,N-1)点的路径中,每个方格中的数值之和最小的路径。其中,每次只能从左向右,从上向下移动;2. 题目分析:1. 典型的动态规划题目;2. 记录过程中的结果,避免重复计算,否则会超时;3. 解题代码:public class Solution { private int maxPath=0;

2016-03-18 08:41:28 564

原创 LeetCode-63-Unique Paths II(动规)-Medium

题目理解:1. 同63(Unique Paths);2. 增加限制条件:有障碍的地方不能通过;题目分析:添加障碍位置判断处理逻辑;解题代码:public class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) { int row=obstac

2016-03-16 08:47:23 634

原创 LeetCode-62-Unique Paths(动态规划)-Medium

题目理解:在只允许从左向右,从上到下移动的情况下,从mxn的矩阵(0,0)点,到(m-1,n-1)点,有多少路径;题目分析:1. 回溯遍历会超时;2. 动规;解题代码:public class Solution { public int uniquePaths(int m, int n) { int[][] array=new int

2016-03-14 08:51:58 1774

原创 LeetCoce-61-Rotate List(链表/指针操作)-Medium

题目理解:假设先前的链表长度为n,求解将前n-k个元素移动到从k开始的链表之后的结果;题目分析:1. 注意k>n的情况(k=k%n);2. 典型的指针操作;解题代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListN

2016-03-08 08:56:19 412

原创 LeetCode-60-Permutation Sequence(找规律)-Medium

题意理解:将0-n按照从小到大的顺序进行全排序,求解第k个排列结果题目分析:穷举会超时,找规律,1)第k个排列的第一个元素在0-n中的位置为(k-1)/(n-1)!2)在剩下的元素中继续找第一个;3)依此类推;在Java中使用String一直会超时,最终使用StringBuilder;解题代码:public class Solution

2016-03-04 09:07:30 2835

原创 LeetCode-59-Spiral Matrix II(Array)-Medium

题意理解:给定n,求解由1-n组成的n维矩阵。其中,矩阵内容的旋转遍历即为1-n的排序内容;解题分析:逐层递归填写n维矩阵的内容;解题代码:class Solution {private: void process(vector> &m, int _initPos, int _n, int _initNum){ int initPos=

2016-02-04 09:30:42 477

原创 LeetCode-58-Length of Last Word(字符串)-Easy

题意理解:求解最后一个不包含空格的字符子串的长度;题目分析:从后向前处理,找到最后一个不包含空格的字符子串;解题代码:class Solution {public: int lengthOfLastWord(string s) { int size=s.size(); if(size<=0){ r

2016-02-04 08:47:26 328

原创 LeetCode-55-Jump Game(贪心)-Medium

题意理解:数组中的每个元素代表最多向后能够跳跃的距离,求解是否能够到达最后的一个元素;题目分析:贪心算法:每一步都确定能够跳跃的最大距离,如果最后一个元素在这个距离内则表示可达;解题代码:class Solution {public: bool canJump(vector& nums) { int size=nums.size();

2016-02-04 08:30:27 2537 1

原创 LeetCode-54-Spiral Matrix(矩阵/模拟/递归)-Medium

题目理解:将一维或二维数组中的元素按顺时针放向进行打印;解题分析:1. 模拟;2. 递归:1)每次重新计算最开始的左上初始点;2)然后依此遍历最上一行,最右一列,最后一行,以及最左一行;3)注意避免重复遍历,处理好边界问题;解题代码:class Solution {private: void process(vector> &m,int

2016-02-03 08:55:13 379

原创 LeetCode-算法总结

Array: 矩阵;Hash Table:哈希;Linked List:链表;Math:数学;Two Pointers:双指针;Sting:字符串;Divide and Conquer:分治;Binary Search:二分;Dynamic Programming:动态规划;Backtracking:回溯;+++++++++++++Stack:堆栈;He

2016-01-16 22:37:11 1011

原创 LeetCode-53-Maximum Subarray(DP/分治)-Medium

题意理解:求解数列中的子数列,要求子数列的和最大;题目分析:1. DP(如解题代码所示);2. 分治(参考http://www.2cto.com/kf/201403/289418.html)解题代码:class Solution {public: int maxSubArray(vector& nums) { int size=nu

2016-01-16 21:07:20 1533

原创 LeetCode-50-Pow(x, n)( 二分法)-Medium

题意理解:自己实现pow()函数;题目分析:二分法:可以粗糙理解为pow(m, n)= pow(m, n/2)*pow(m, n/2)解题代码:class Solution {private:double funPow(double x, int n) { if(n==0){ return 1; }

2016-01-16 13:20:55 1097

原创 OJ解题总结

1. 基本数据结构1)数组;2)链表;3)string;2. STL工具1)vectot;2)map;3)  hash(使用map来实现)4)string;5)algorithm: find(),sort();3. 题目分类1)模拟;2)规律/证明;3)数论相关:越界4)字符串处理:字串、回文4. 算法思想1)

2016-01-10 18:55:39 466

原创 LeetCode-49-Group Anagrams(哈希)-Medium

题意理解:将给定字符串分组,要求同一组的字符串由相同字符组成,最终,将各组字符串按字典序输出;题目分析:1. 将字符串先进行排序,然后通过字符串比较来判定是否为同一组;2. 将分组后的字符串集合再进行排序,从而满足题目的字典序要求;3. 在分组的过程中需要进行查找,本题中使用了hash的思想,但C++的STL中没有hash容器,解题代码中使用map来完成hash功能(m

2016-01-10 18:32:32 2664

原创 LeetCode-48-Rotate Image(模拟)-Medium

题意理解:将给定二维矩阵顺时针选择90度;题目分析:1. 一层一层的旋转(解题代码中就是这个方法);2. 技巧解法:将原始矩阵上下对折,然后再对角对折,等效于顺时针选择90度(没有想懂其中的数学原理);解题代码:class Solution {private: int read(vector> &m, int layer, int index){

2016-01-10 16:34:02 619

原创 LeetCode-47-Permutations II(DFS/剪枝)-Medium

题意理解:同46,但vector中的元素可能存在重复值;题目分析:同46一样通过DFS求解,但注意剪枝;解题代码:class Solution {private: vector> ans; bool findValue(vector &v, int endIndex, int val){ for(int i=0; i<endIn

2016-01-10 14:37:01 795

原创 LeetCode-46-Permutations(DFS)-Medium

题意理解:给定vector,其中的元素均为唯一的,求解vector中元素所有的排列方式;题目分析:典型的DFS解题代码:class Solution {private: vector> ans; void dfs(vector &preAns, vector &subNums){ if(subNums.size()==0){

2016-01-10 14:27:37 1260

原创 LeetCode-43-Multiply Strings(模拟)-Medium

题意理解:输入为两个string,代表两个非负的整数,求解这两个“正整数”的乘积,结果已string类型返回;题目分析:1. 模拟乘法的过程:1)整数n1,n2,将n2中的每一位与n1做乘法,并保存结果r1,r2.......rn;2)将r1,r2.....rn “对应”相加;解题代码:class Solution {private: vect

2016-01-10 12:59:38 331

原创 LeetCode-40-Combination Sum II(DFS)-Medium

题意理解:同39,但是,1)要求同一元素不能重复使用;2)输入元素中可能出现重复的内容,所以,剪枝过程要再39的基础上做调整;解题代码:class Solution {private: vector> ans; void dfs(vector candi, int index, vector preAns, int tar){ int

2016-01-03 22:46:02 525

原创 LeetCode-39-Combination Sum(DFS)-Medium

题意理解:列举出给定vector中内容之和为target的组合,其中,1)同一元素可以多次使用;2)结果按升序排列;3)不能有重复结果;解题分析:DFS注意剪枝,参考http://blog.csdn.net/xiaobaohe/article/details/7897966中的图解题代码:class Solution {private: v

2016-01-03 20:34:06 979 2

原创 LeetCode-38-Count and Say(String/递归)-Easy

题意理解:按照题意描述,求解nth个生成字符串。如1,11,21,1211,的规则为:1)第一个初始值为1;2)为了描述第一个值只有一个1,所以生成第二个值11;3)为了描述第二个值有两个1,所以生成第三个值21;4)为了描述第三个值有一个2,和一个1,所以生成第四个值1211;题目分析:1. 使用stringstream来进行整数和字符串之间的转换;2

2016-01-03 10:47:14 740

原创 LeetCode-36-Valid Sudoku(模拟/遍历)-Easy

1. 题意理解:判断9宫格的填充内容是否符合9宫格游戏规则。2. 题目分析:1)模拟游戏规则,判断横、竖、以及9个子格的内容是否符合规范;2)遍历所有的情况;3. 解题代码:class Solution {private: bool isValid(vector &v){ sort(v.begin(), v.end());

2016-01-02 18:06:39 630

tpipv6.h(头文件)

在Windows IPv6套接字编程中会包含此头文件-tpipv6.h This module contains IPv6-specific extensions, and address family independent extensions to Winsock for the IPv6 Technology Preview.

2013-01-09

Putty资源合集

PuTTy终端 的功能,而是通过其完整安装包内的 psftp.exe 文件实现的。所以,要完成像文件上传这些操作, Windows 内必须有完整的 PuTTy 安装包而不仅仅是 putty.exe 这一个文件。

2012-11-30

windows界面下的网络编程

本书以简单明了的语言和形象生动的例子,介绍了WINSOCK(Windows Socket)网络编程,共分上、下两篇。上篇主要介绍了网络编程的基础知识,其中包括网络通信模型、TCP/IP协议、socket编程界面、WINSOCK的消息结构等。下篇主要介绍了五个网络协议和相应的网络程序。这些网络协议包括文件传输协议(FTP)、邮件发送协议(SMTP和POP3)、超文本传输协议(HTTP)、Gopher协议、CHECKET协议(作者自定义的)。在附录中,详细介绍了WINDSOCK的函数和超文本制作语言(HTML)。 本书论述通俗、技术实用,适合于计算机网络、计算机软件以及计算机应用等专业的大专院校师生和计算机软件开发人员使用与参考。

2011-12-28

tmote-sky硬件手册和开发使用手册

文档中包含tmote-sky的硬件手册,以及使用手册

2011-12-06

空空如也

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

TA关注的人

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