自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 [leetcode-299]Bulls and Cows(java)

问题描述:这里写链接内容问题分析:这道题看起来很唬人,其实就是遍历两个字符串,看在某个位置是否相等,如果相等,就A++;如果不相等,就把secret中的字符和guess中的字符再分别存起来;然后再遍历第二遍,第二遍的遍历就是,经过处理的guess字符,会不会在经过处理的secrets的字符里面。如果在,就B++,表明只是放错了位置而已。public class Solution { publ

2015-10-31 10:48:27 2580

原创 [leetcode-297]Serialize and Deserialize Binary Tree(java)

问题描述:这里写链接内容 这道题思路毕竟简单,就是定义一套规则,一套序列化成字符串,然后再反序列化的规则。我的思路很简单:序列化过程中,采用广搜的思路,在对每一层而言,如果该节点为null,那么在字符串中添加一个‘#’,如果不为null,就添加一个该数,其中每个节点都以,为分割。反序列化时,首先调用split函数,将字符串解析成字符串数组,然后对数组进行遍历,获取每个数组元素,如果为“#”时,将n

2015-10-30 21:27:52 1720

原创 [leetcode-295]Find Median from Data Stream(java)

问题描述:这里写链接内容分析:这道题比较简单,重点在于如何高效插入数据。这里采用的是二分法,相当于插入排序。代码如下:class MedianFinder { List<Integer> numlist = new ArrayList<>(); // Adds a number into the data structure. public void addNum(int

2015-10-19 19:12:00 1000

原创 向量旋转算法

最近看《编程珠玑》,里面提到了一个常见的向量旋转问题,是指将一个数按照某点前后置换,比如【1,2,3,4,5,6,7,8,9,10】按照4旋转后,就变成了【5,6,7,8,9,10,1,2,3,4】。之前在leetcode上也看到了这个问题,当时觉得很简单,就是把前i个数存起来,然后将后面的数据向前移动,然后在把存起来的前i个数加在后面。《编程珠玑》上提到了两种算法,非常高效,时间复杂度为O(n),

2015-10-15 20:54:24 786

原创 解决PHP上传文件中文乱码问题

问题描述:项目组在使用WSS(White Shark System)官方网站过程中,发现当上传中文文档时,在点击下载时无法下载(显示404NotFound),从显示的URI上可以很明显的看出是由于乱码。具体信息描述: 服务器:centos+apache+php+mysql 客户端:Windows解决过程:由于我在本机上也搭载着一套WSS系统,我尝试了文件上传,没有任何问题。所以我猜想是由于win

2015-10-15 20:23:20 3641

原创 [leetcode-45]Jump Game II(java)

问题描述:https://leetcode.com/problems/jump-game-ii/分析:这道题最开始使用DP算法,发现TLE,然后归纳代码发现,没有必要分配额外的空间,而只需要保留一个空间的左边界和右边界即可。当这个右边界小于target时,从左边界遍历到右边界,查看这一轮里面右边界最多延伸到什么地方?当然,如果新的右边界小于等于原来的右边界,那么jump game就困死在了这一轮,反

2015-10-13 16:24:45 888

原创 [leetcode-44]Wildcard Matching(java)

问题描述:https://leetcode.com/problems/wildcard-matching/分析:这道题之前做过,再做发现还是没想到这个思路。最开始的思路还是使用回溯法,但是会发生超时。 我们再来仔细分析一下这样的结构。 p : abcd*def* ass*sss。这样的匹配实际上就是要查找字符串s中是否有如下按照一定顺序的序列:abcd、def、ass和sss。只有这四个字符串按

2015-10-13 15:18:03 1906

原创 [leetcode-292]Nim Game(java)

问题描述: You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will

2015-10-13 14:46:56 1930 1

原创 关于边界对齐的问题

边界对齐是什么?就是某种数据类型的存储地址有一定要求。对于计算机而言,理论上每个字节都可以用来存储数据,但是有些CPU或者由于什么其他原因,它们在读取数据时是按照对齐的方式来读取的。比如说,对于int型而言,intel默认是按照4字节的对齐要求来读取的。这样的读取可以在一个周期内完成。而如果不是这样的,那么可能需要2个周期或者更多时间来完成一个数据的读取。这也就解释了为啥需要边界对齐。但是我们在写C

2015-10-12 10:37:44 9560

原创 多次flose(fp)会怎样?

能不能多次对同一个文件描述符调用fclose?答案是不行的。为啥不行,我们需要看看fclose到底干了什么fclose关闭的是一个文件流,当调用fclose时,将会使用户态(C库)缓冲区中的数据刷新到内核区域(或通过socket发送,或者仅仅写回硬盘)。 于此同时,fclose会调用free来释放fp所指向的用户态buffer。因此,如果多次调用fclose,会多次调用free来释放一块已经被释放

2015-10-12 09:52:28 2830

原创 直方图内最大矩形

问题描述: 有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。 给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。 测试样例: [2,7,9,4,1],5 返回:14分析:这里我们维护一个堆栈,当栈

2015-10-07 22:38:40 1585

原创 棋子翻转

问题描述: 在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。 给定两个数组A和f,分别为初始棋盘和翻转位置。其中翻转位置共有3个。请返回翻转后的棋盘。 测试样例: [[0,0,1,1],[1,0,1,0],[0,1,1,0]

2015-10-07 22:17:10 2059

原创 最大差值

问题描述: 有一个长为n的数组A,求满足0≤a≤bimport java.util.*;public class LongestDistance { public int getDis(int[] A, int n) { // write code here int min = 0; int leftVal = A[0]; f

2015-10-07 22:10:49 685

原创 [leetcode-290]Word Pattern(java)

问题描述:https://leetcode.com/problems/word-pattern/分析:这道题比较简单,维护一个hash表,key为pattern中的字符,value为被切割的字符串。代码如下:3mspublic class Solution { public boolean wordPattern(String pattern, String str) { c

2015-10-06 10:39:37 2136 1

原创 [leetcode-289]Game of Life(java)

问题描述:分析:这道题起初自己搞复杂了,我原先以为是求最后的稳态,即一个状态再跳转到另外一个状态时,两个矩阵是一样的。但是有个测试用例是: 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 这个测试用例会发现该初始值根本就没有稳态,这才注意到是求的下一个状态。然后这个题的难点就在于了如何在in-place里面存储改变后的值?(特别是fol

2015-10-04 11:22:25 2110

原创 [leetcode-287]Find the Duplicate Number(java)

问题描述: Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate numb

2015-10-03 10:57:41 1052

空空如也

空空如也

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

TA关注的人

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