02 2017 档案

摘要:题目描述: 解题思路: 题目大意:给定一个链表,反转第m到第n个结点部分,m、n满足1 ≤ m ≤ n ≤ length of list。 解题思路参照LeetCode206题,用迭代法,不过要注意以下几点: (a):为方便操作,新建一个辅助结点dummy,使其下一个结点指向头节点。 (b):维护4 阅读全文
posted @ 2017-02-28 23:30 追梦boy 阅读(372) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 关于单链表的反转有迭代和递归两种方法,方法不在多,本文主要介绍迭代的方法。 迭代的方法,要使用三个指针,需要注意一点的是指针的初始化,对第一个指针初始化为pre=null,第二个指针初始化为current=head,第三个指针初始化为next=null,不能将第一个指针pre 阅读全文
posted @ 2017-02-28 18:29 追梦boy 阅读(193) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 判断一个单向链表是否是回文链表,并且要求O(n)的时间复杂度和O(1)的空间复杂度。 方法有以下几种: 1、遍历整个链表,将链表每个节点的值记录在数组中,再判断数组是不是一个回文数组,时间复杂度为O(n),但空间复杂度也为O(n),不满足空间复杂度要求。 2、利用栈先进后出的 阅读全文
posted @ 2017-02-28 00:47 追梦boy 阅读(229) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 求回文数,并且要求不能使用额外的空间。思路很简单,算出x的倒置数reverse,比较reverse是否和x相等就行了。 Java代码: 程序结果: 阅读全文
posted @ 2017-02-27 20:20 追梦boy 阅读(160) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 反转的方法很简单,重点在于判断溢出的问题,下面给出了两种方法。 Java代码: 方法一: 判断溢出方法:在执行完int newResult=result*10+tail语句后,紧接着进行逆运算result=(newResult-tail)/10,如果出现溢出,那么逆运算后re 阅读全文
posted @ 2017-02-26 18:21 追梦boy 阅读(311) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 借用网上大神的思想:the basic idea is, keep a hashmap which stores the characters in string as keys and their positions as values, and keep two poin 阅读全文
posted @ 2017-02-23 14:20 追梦boy 阅读(150) 评论(0) 推荐(0)
摘要:题目描述: 解决思路: 此题较简单,和前面【LeetCode67】方法一样。 Java代码: 程序结果: 阅读全文
posted @ 2017-02-22 22:47 追梦boy 阅读(479) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 此题是要在不用操作符+和-的情况下,求两个整数的和。既然不能用内置的加减法,那就只能用位运算(&, |, ~, ^)。 (1)异或(xor):异或的数学符号为“⊕”,计算机符号为“xor”。 异或也叫半加运算,其运算法则相当于不带进位的二进制加法:异或的运算法则为:0⊕0=0 阅读全文
posted @ 2017-02-22 18:16 追梦boy 阅读(178) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 此题的思路简单,下面的代码用StringBuilder更加简单,注意最后的结果要反转过来。【LeetCode415】Add Strings的解法和本题一模一样。 java代码: 程序结果: 阅读全文
posted @ 2017-02-21 22:21 追梦boy 阅读(206) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: java代码: 测试结果: 阅读全文
posted @ 2017-02-21 21:21 追梦boy 阅读(187) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 给定两个链表(代表两个非负数),数字的各位以正序存储,将两个代表数字的链表想加获得一个新的链表(代表两数之和)。 如(7->2->4->3)(7243) + (5->6->4)(564) = (7->8->0->7)(7807) 此题与【LeetCode2】Add Two N 阅读全文
posted @ 2017-02-20 21:14 追梦boy 阅读(249) 评论(0) 推荐(0)
摘要:题目描述: 解题思路: 给定两个链表(代表两个非负数),数字的各位以倒序存储,将两个代表数字的链表想加获得一个新的链表(代表两数之和)。 如(2->4->3)(342) + (5->6->4)(465) = (7->0->8)(807) 设两个进行加法运算的链表分别为l1,l2, 结果链表为resu 阅读全文
posted @ 2017-02-20 17:18 追梦boy 阅读(221) 评论(0) 推荐(0)