美文网首页
我的LeetCode之旅

我的LeetCode之旅

作者: _陈陌先生_ | 来源:发表于2016-03-31 22:02 被阅读53次

对于一个编程屌丝的我,编程能力太有限,好在最近开始刷LeetCode,发现每得到一个AC都无比高兴,于此,记录下我从中的一些收获,还望各位大神分享你们的经验。持续更新中...

1.Two Sum 和 3Sum

Fig1 Fig2

处理数组类求和问题,首先要做的就是对数组进行排序(直接引用库里面的排序方法),便于后面的处理,可以大大降低时间代价;

一般情况下,数组求和问题都可以采用夹必准则,从头和尾开始往中间移动,但是有些情况需要返回初始数组下标的时候,那么就要考虑重新开辟空间记录初始数组的下标位置,所以面对这种情况,可以考虑借助其他数据结构来解决问题,2Sum就可以采用HashMap,更好。


2. Rotate Array

Fig3

关于数组的反转,我得到的启发就是,不断利用反转,解决问题。

3.NP问题

Fig4

NP问题,一般解决问题的方法就是递归和非递归。我个人比较容易理解非递归方法。


4.Happy Number

求一个数的各位的平方的和,比如:167:1的平方+6的平方+7的平方=86

思路:不断循环,循环终止条件:要么达到Int最大值,要么出现了各位数和已经重复出现的情况。利用HashSet,因为HashSet里面不允许有重复的元素。

Fig5

5.Valid Anagram


Fig6

这题其实很简单,但是如果没有想到,可能会做得有些复杂。

Fig7

首先想到的就要应该是对字符串中的每个字符进行排序(因为每个字符都对应一个code值),然后判断排序后的是否相等即可。

String类中有很多方法,可以把字符串进行各种转化,由此就会想到转换成一个字符数组。而Arrays提供了对数组进行排序的函数,直接调用即可。最后返回两个字符串是否相等。

注意,不能返回sArr==tArr,这样返回永远都为false,因为这样比较的是两个字符串对象的地址(引用),我们要比较的是字符串里面的值,所以需要用equals函数,这里还需要借用String类的valueOf函数。

还有,不能使用return (sArr.toString()).equals(tArr.toString());进行判断,因为在数组中(sArr和tArr是数组)没有对toString()进行重写,此时调用toString返回的是C@15db9742类似这种值,永远返回是false。而String的valueOf(char[] data),返回char数组参数的字符串表示形式,调用这个方法才正确。

Arrays的 static toString(char[] a) ,Returns a string representation of the contents of the specified array.

相关文章

  • 我的LeetCode之旅

    对于一个编程屌丝的我,编程能力太有限,好在最近开始刷LeetCode,发现每得到一个AC都无比高兴,于此,记录下我...

  • Leetcode之旅

    20180530 又开始刷Leetcode,但愿能够坚持 两数之和两数之和,典型用空间换时间的问题,用HashMa...

  • LeetCode之旅

    LeetCode 浪的太久,是时候应该重新振奋,机缘巧合,那就从LeetCode开始 记录下LeetCode过程中...

  • Problems->001.两数之和

    (记录自己的leetcode之旅)视频连接:https://www.bilibili.com/video/av91...

  • LeetCode题解

    我的微信公众号《Chris的算法之旅》,专注于写LeetCode题解,数据结构和算法类的文章,如果觉得还不错,希望...

  • 算法实战-LeetCode之旅

    Sort Array By Parity AC-17ms.按照《算法导论》排序一章的一些概念,第二种可以称为是原址...

  • Problems->007.整数反转

    (记录自己的leetcode之旅)给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1...

  • Problems->003.无重复字符的最长子串

    (记录自己的leetcode之旅)给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: "abca...

  • leetcode探索之旅(350)

    两个数组的交集 题目: 给定两个数组,编写一个函数来计算它们的交集。 示例1: 示例2: 说明: 输出结果中每个元...

  • leetcode探索之旅(14)

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例 1: ...

网友评论

      本文标题:我的LeetCode之旅

      本文链接:https://www.haomeiwen.com/subject/ikzelttx.html