自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 033-Search in Rotated Sorted Array-在移动过的有序序列中搜索

给定一个升序数列,将其进行随机旋转,如01234567可能变成56701234,如果搜寻的数在里面则返回序号,否则返回-1从头遍历到尾当然可以,但是为了提高效率,利用好有序排列的前提,这里使用调整过的二分查找法。旋转有序链表有个特点,他肯定是分成了左右两个部分,每个部分单独为一段有序列表。我们在对mid进行分析的时候,分情况讨论搜索数字所可能落在的对应区间应满足的条件。(1)mid取到了目标数,返...

2018-02-22 21:43:50 189

原创 016-3Sum Closest-三元素和最接近解

和15题基本一致,if else分支记得改为判断当前这一组三元素和(记为sum)和target差值的绝对值大小,更小则更新结果。由于向内收缩可能不断更新解,所以while条件用low<high就行了,不用停止直到高低位相遇。贴代码:public class threeClosest { public static int threeSumClosest(int[] nums, int ta...

2018-02-22 19:17:20 220

原创 029-Divide Two Integers-不用乘除取模来实现整型除法

不用乘除取模来实现整型除法。这题的关键在于用左移操作<<来取代乘法,每左移一位则相当于数字翻倍。保证每一轮的被除数大于除数的前提下,不断翻倍除数直到最大,倍数记录于结果,然后做差并将其记为下一轮的被除数。这里需要注意的是int类型的边界:最小值:Integer.MIN_VALUE=-2147483648最大值:Integer.MAX_VALUE=2147483647比如-214748...

2018-02-21 22:30:24 314

原创 15-3Sum-找和为0的所有三元素解组合

给定一个含n个元素的序列,找出其中所有和为0的三元素解集合。例子:For example, given array S = [-1, 0, 1, 2, -1, -4],A solution set is:[ [-1, 0, 1], [-1, -1, 2]]首先一点,暴力穷尽搜索能够很简单的解决问题,但是时间超过了及格线,所以一定要用些优化的算法。解决这道题的基本思路如下:(1)将整...

2018-02-18 22:47:47 242

原创 11-Container with Most Water-把数组看成装水的容器

给定n个非负整数a1,a2,...,an,其中每个代表坐标(i,ai)处的一个点。绘制n条垂直线,使得线i的两个端点处于(i,ai)和(i,0)处。找到两条线,它们与x轴一起形成一个容器,使得容器包含最多的水。容器无法倾斜,n至少为2。木桶效应,一个水桶装多少水取决于最短的木板,这是隐含条件。所以我们的最终运算结果应该是:(high-low)*Math.min( height[low],

2018-01-22 22:01:23 439

原创 21-Merge Two Sorted Lists-合并两个有序单链表

合并两个有序单链表,并返回一个合并后的链表。例子:Input: 1->2->4, 1->3->4Output: 1->1->2->3->4->4我这种傻瓜的思路就只是合并链表的基本算法,挨个节点进行比较,较小的一方接入结果链表并向next移动一位,指导两个后续列表都为空,或者一方为空则贴上另一方的剩余部分链表。贴代码:public class ListNode {

2018-01-22 13:21:16 206

原创 02-Add Two Numbers-用链表实现正整数的加法

给定两个非空链表,每个元素存放一个个位数,且逆向存储。试着把这两个链表看成两个数进行加法,并返回一个单链表存放结果。例子:Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 0 -> 8Explanation: 342 + 465 = 807.考察单链表的遍历操作,需要注意的细节就是进位问题。比如例子中的4+6=10,向前进位1。实

2018-01-22 12:23:52 403

原创 28-Implement strStr()-子串的检测

给定字符串haystack和needle,检测needle是不是haystack的子串,是则返回索引,否则返回-1。例子:Input: haystack = "aaaaa", needle = "bba"Output: -1第一反应多简单啊一行代码解决:public static int strStr(String haystack, String needle){ r

2018-01-21 21:41:13 297

原创 01-Two Sum-返回和为特定值的两个元素索引

给定一个数列(未必按序排列)和一个整数,求这个数列中两个和为此整数的数的序号。假设一个数列中只会有一组解,并且一个数只能使用一次。例子:Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].一种解法:public class TwoSums {

2018-01-21 21:04:23 263

空空如也

空空如也

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

TA关注的人

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