自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode_Valid Parentheses

很简单的字符串匹配问题,直接用栈就可以实现,为使程序更加高效,当要匹配的字符种类比较多的时候可以考虑用HashMap来保存匹配对

2015-05-21 09:14:07 1455

原创 多线程间的通信问题之交替打印

1.要实现的效果,直接上图:1.具体逻辑很清晰,就是通过多线程来实现直接上代码,lock控制相同的输入或输出线程的同步,resource控制着输入和输出线程的同步class Resource{ private String name; private String sex; private boolean flag; public void setName(String

2015-05-20 11:28:20 851

原创 leetcode_Longest Common Prefix

有两种思路:1.从0向最大的公共前缀长度进行,i=0,即每次从0循环至strs.length,所有的字符都相等,则count++,直至有一个字符不相同为止,循环终止2.假设 longest common prefix 等于字符串数组的最短字符串的长度,从0循环至strs.length,在前面最长公共最大长度的基础上比较相邻两个串的最大公共子串个人感觉还是第一种思路更好,用到的额外存储空间更少,时间也更短

2015-05-20 09:50:22 742

原创 java多线程问题中简单的存取款实现

1.直接上代码:package com.mnmlist.java.grammar;import java.util.Random;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;class Customer { int total; publi

2015-05-19 21:37:36 1386

原创 java多线程问题中死锁的一个实现

java多线程问题中死锁的一个实现

2015-05-19 21:32:54 1033

原创 终止线程的方法

1.用标识符flag来停止。2.用interrupt()方法来停止,但是得用(!Thread.interrupted())判断一下方可以终止线程,起到了flag的作用3.也可以用stop()方法终止线程,但是该方法已经被废弃,虽然可以,但已经不推荐用了。对于冻结的线程仅凭flag标识是不足以终止线程的,主线程结束了,t2 t1直接wait()了,如果线程处于了冻结状态,就无法读取标记,所以就引入了第二种结束线程的方式interrupt(),直接用interrupt()方法终止线程是无效的,但是inter

2015-05-19 21:22:45 921

原创 leetcode_Largest Number

1.将数字转换为字符串2.对字符串数组进行升序排序3.具体的排序规则为将两个字符串以str1+str2和str2+str1的方式拼接起来,然后比较两个拼接后的字符串即可4.将排好序的字符串数组拼接起来即为要求的最大整数字符串ps:刚开始走了好多弯路以比较短的字符串为基准和比较长的字符串循环比较,直至有不同大小的段为止,吃力不讨好,最后也没有算对^-^!

2015-05-19 09:15:32 944

原创 leetcode_Container With Most Water

1.先获取两段的垂线和x轴组成的容器可以容纳的水量tempSum,并使得maxSum=tempSum;2.然后再去除两段较小的垂线段,组成新的容器,获得新的可容纳的水量tempSum,并更新maxSum3.循环直至start==end

2015-05-18 10:15:36 677

原创 leetcode_Minimum Size Subarray Sum

1.找到第一符合条件的长度2.先加上后面的一个元素3.如果减去前面的一个元素后sum小于target,转到23.减去前面的n个元素后符合条件&&减去前面的n+1个元素后不符合条件,获得一个新的长度,跟最小长度相比,小于minLen,更新minLen=newLen4.若果start<end&&end<nums.length,转至2

2015-05-18 10:10:18 608

原创 leetcode_Maximum Product Subarray

0.动态规划问题,和求最大连续和maximum subarray类似,但感觉比求最大连续和复杂的多1.以0为分割元素获得一系列的区间2.对每一个区间求最大值3.具体到每一个区间,顺序查找一遍寻找最大的序列,逆序查找一遍寻找最大的序列,求顺序或逆序查找的最大值4.注意:(tempCount1&1) == 1)可以节省好多时间,用%2==1就不行

2015-05-18 10:03:16 685

原创 leetcode_Copy List with Random Pointer

1.首先根据旧链表的值创建一个新的链表并分别将旧链表和新链表存储到listOld和listNew中。2.然后根据旧链表中index位置的结点的random指针所指向的位置,找出旧链表指针所指向结点在listOld中的index,也即listNew中的newIndex3.把新链表中的index位置的结点指向newIndex位置的结点,问题得解!

2015-05-17 15:35:35 857

原创 leetcode_Rotate Array

当然,一个很简单且容易想到的思路就是直接循环移位k位即可,但每次都要移动n个元素,即总共需要移动k*n个元素和Reverse Words in a String II题目类似,还有一种通过改变固定数目的元素就可以实现移位数组的功能,即先将1~len-k,len-k~len之间的元素逆置,最后将1~len之间的元素逆置,可以实现最后的旋转数组的目的。

2015-05-17 15:18:02 790

原创 leetcode_Search for a Range

1.二分查找,找到value为target的一个元素的位置,找不到返回[-1,-1]2.假设找到位置,且为index,分别向两边拓展即可。

2015-05-17 14:48:26 828

原创 leetcode_Search Insert Position

1.变形的二分查找问题2.最后A[mid]=target,index=mid3.最后A[mid]!=target,又分A[mid]<target和A[mid]>target两种情况,4.if(A[mid]<target),index=mid+1;if(A[mid]>target),index=mid;

2015-05-17 14:42:55 631

原创 leetcode_Count Primes

判断一个数是否为质数有两种方法,一种是判断它能否被2~(int)sqrt(n)+1之间的数整除,能被整除为合数,否则为质数但是,当n非常大的时候这种方法是非常费时间的。另外一种改进的方法是仅用n除以2~(int)sqrt(n)+1之间的所有质数,而2~(int)sqrt(n)+1之间的质数从何而来?先计算出来测试用例需要的小于num的所有质数的num大概为1200就能通过本题的测试用例

2015-05-17 14:29:35 963

原创 leetcode_Reverse Linked List

描述:Reverse a singly linked list.思路:感觉还是非递归方法更简洁明快,创建一个头节点并链接到第一个结点前面,从第二个结点开始依次用前插法插到前面,最后得到倒序的结点。代码:非递归方法:public ListNode reverseList(ListNode head) { if(head==null||head.next==

2015-05-17 14:15:25 517

原创 leetcode_Rotate Image

对于这种题目,就应该在纸上画画写写,由简单到一般,一般是可以发现规律的。当然了,只是有规律,newArr[j][rows-i-1]=matrix[i][j];

2015-05-17 14:09:44 512

原创 leetcode_Remove Element

描述:Given an array and a value, remove all instances of that value in place and return the new length.The order of elements can be changed. It doesn't matter what you leave beyond the new len

2015-05-16 10:37:36 473

原创 leetcode_Remove Duplicates from Sorted Array II

描述:Follow up for "Remove Duplicates":What if duplicates are allowed at most twice?For example,Given sorted array nums = [1,1,1,2,2,3],Your function should return length = 5, with the

2015-05-16 10:27:20 569

原创 leetcode_Remove Duplicates from Sorted Array

描述:Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in p

2015-05-16 10:22:46 492

原创 leetcode_Plus One

很简单的字符串加法,当然要考虑到最后的进位

2015-05-16 10:14:31 588

原创 leetcode_Majority Element

令temp=arr[0],count=1;如果下一个元素跟temp相等,count++;若果不等,count--;若果count==0;temp换做当前元素,count=1;由于majority element出现的次数大于一半长度,所以最后剩下的元素肯定为majority element

2015-05-16 10:11:13 486

原创 leetcode_Merge Sorted Array

思路:1.最省力的一种方式从后面开始比较,较大的一个放到num1的后方,直至其中一个元素比较完2.假设num2种仍然存在没有比较完的元素,依次将num2种的元素放置到num1中

2015-05-16 09:53:37 513

原创 leetcode_Search in Rotated Sorted Array II

本题木的特点是数组初始有序,然后循环移位了。由于是循环移位,所以数组前一半或后一半至少有一半元素是有序的,而找到其中一半有序的元素正式本题的题眼。1.初始start=0,end=len-12.mid=(start+end)/2;如果arr[mid]==target,找到元素3.如果arr[start]<arr[mid],则前半部分有序,如果arr[start]<=target<arr[mid],则target存在的话肯定在前半部分,end=mid-1,如果target>arr[mid],则targe

2015-05-16 09:45:07 721

原创 Search in Rotated Sorted Array

描述:Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a target value to search. If found in the ar

2015-05-16 09:42:46 489

原创 leetcode_Pascal's Triangle II

描述:Given an index k, return the kth row of the Pascal's triangle.For example, given k = 3,Return [1,3,3,1].思路:就是类似杨辉三角的问题,用两个数组存储相邻的两行然后用第一行来算第二行即可,将计算到第k行的数据存储到list中即可。代码:public

2015-05-16 09:29:31 555

原创 leetcode_Pascal's Triangle

描述:Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5,Return[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]思路:就是类似杨辉三角的问题,用两

2015-05-16 09:26:15 536

原创 leetcode_Valid Number

这道题目还是挺复杂的,复杂的原因是题目并没有给出有效数字的定义,比如说 .1 ,2.1e10.2 ,2e3.2 和2.1e5 有效,但10.1.1非法而这些数字的判断又是很麻烦的

2015-05-16 09:21:12 878

原创 leetcode_Valid Palindrome

描述:Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.For example,"A man, a plan, a canal: Panama" is a palindrome."race a car" 

2015-05-16 09:13:13 513

原创 leetcode_Spiral Matrix

描述:Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.For example,Given the following matrix:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9

2015-05-16 09:07:37 496

原创 leetcode_Spiral Matrix II

这题看起来是很复杂,做起来也确实挺复杂的。但是呢,这题并不是非常非常难,只是控制逻辑让人很抓狂罢了。colStart,colEnd,rowStart,rowEnd,num=01.colStart<colEnd 为arr[row][colStart]~arr[row][colEnd-1]赋值num++;2.rowStart<rowEnd 为arr[col][rowStart]~ar[col][rowEnd-1]赋值num++;3.colEnd>colStart 为arr[rowLen-1-row][

2015-05-16 09:03:46 726

原创 leetcode_Unique Paths II

描述:Follow up for "Unique Paths":Now consider if some obstacles are added to the grids. How many unique paths would there be?An obstacle and empty space is marked as 1 and 0 respectively

2015-05-16 08:51:11 545

原创 leetcode_Unique Paths

描述:A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to r

2015-05-16 08:40:31 470

原创 leetcode_Excel Sheet Column Title

描述:Given a positive integer, return its corresponding column title as appear in an Excel sheet.For example: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB

2015-05-16 08:36:00 644

原创 leetcode_Excel Sheet Column Number

描述:Related to question Excel Sheet Column TitleGiven a column title as appear in an Excel sheet, return its corresponding column number.For example: A -> 1 B -> 2 C -> 3

2015-05-16 08:31:39 470

原创 leetcode_Compare Version Numbers

描述:Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 version2 return -1, otherwise return 0.You may assume that the version strings are non-emp

2015-05-16 08:26:28 512

原创 leetcode_Gas Station

这是一个动态规划的题目,假设能跑完全程,最后邮箱中的油肯定还有剩余,由于是一个环形的路线,所以理论来讲,可以从任何地方开始。所以,可以用两个变量来表示这道题目,sum表示全程的油的剩余,而index来表示从何处开始。1.从任何地方可以开始本次的行程,而sum+=gas[i]-cost[i],若sum<0,说明从index开始是不合适的,换成从i+1开始,直至结尾2.若最后sum>=0,说明路线存在且以index为起点的路线为一个可行的路线。

2015-05-16 08:21:55 847

原创 leetcode_Length of Last Word

1.s==null return 02.s=s.trim(),s.length()==0 return 0;3.从后面开始计算字母的数量,直到遇到空格为止

2015-05-15 14:31:43 587

原创 leetcode_Find Minimum in Rotated Sorted Array

思路:这道题由于要求对数的时间复杂度,所以考虑用二分查找,而二分查找需要数组是有序的。而本文所给的数组是循环移位后的有序数组,所以假设能够确定数字的顺寻就可以应用二分查找,本文的题眼也就在这里。由于所给的数据是循环移位后的有序数组,所以本数组至少有一半的元素是有序的,找出有序的那一般即可应用二分查找。1.首先取mid=(start+end)/2,将arr[start]和arr[mid]比较,如果arr[start]==arr[mid],找到元素2.如果arr[start]<arr[mid],则前半部分

2015-05-15 14:11:07 477

原创 leetcode_Find Minimum in Rotated Sorted Array II

思路:这道题由于要求对数的时间复杂度,所以考虑用二分查找,而二分查找需要数组是有序的。而本文所给的数组是循环移位后的有序数组,所以假设能够确定数字的顺寻就可以应用二分查找,本文的题眼也就在这里。由于所给的数据是循环移位后的有序数组,所以本数组至少有一半的元素是有序的,找出有序的那一般即可应用二分查找。1.首先取mid=(start+end)/2,将arr[start]和arr[mid]比较,如果arr[start]==arr[mid],找到元素2.如果arr[start]<arr[mid],则前半部分

2015-05-15 14:08:49 450

深入理解计算机系统 英文 第二版

深入理解计算机系统 英文 第二版

2014-04-07

java100例,很好的资料,找了好久,终于找到了

巨好,java100例,很好的资料

2010-12-05

空空如也

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

TA关注的人

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