摘要: 描述 给定一个单链表L: L0→L1→…→Ln-1→Ln, 重新排列后为:L0→Ln→L1→Ln-1→L2→Ln-2→… 必须在不改变节点值的情况下进行原地操作。 样例 思路 先将链表整体一分为二,然后将后半段链表逆序,再依次插入前半段节点中。 阅读全文
posted @ 2017-08-12 00:47 Minec 阅读(167) 评论(0) 推荐(0)
摘要: 描述 给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 思路 计算链表个数len,然后先依次向右移动K个位置然后将后K%len个数字移动到前边来 阅读全文
posted @ 2017-08-12 00:39 Minec 阅读(130) 评论(0) 推荐(0)
摘要: 描述 实现一个 Trie,包含 insert, search, 和 startsWith 这三个方法。 样例 思路 在了解字典树的性质和结构之后,就容易理解这次要求的是与之相似的三个功能:插入,查找,前缀查找。 插入操作: 建立结点pre,复制root。在pre的children[index]存放插 阅读全文
posted @ 2017-08-12 00:08 Minec 阅读(115) 评论(0) 推荐(0)
摘要: 描述 给定一个整数,将其转换成罗马数字。 返回的结果要求在1-3999的范围内。 说明 https://en.wikipedia.org/wiki/Roman_numerals https://zh.wikipedia.org/wiki/%E7%BD%97%E9%A9%AC%E6%95%B0%E5% 阅读全文
posted @ 2017-08-11 23:39 Minec 阅读(192) 评论(0) 推荐(0)
摘要: 描述 给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你是否能到达数组的最后一个位置。 思路: 一开始被所给的注意事项锁迷惑,想要用动态规划解决问题,后来在网上查的资料可知,可以先进行遍历,将所记录的点与数组长度相比较,得出结果。这样一 阅读全文
posted @ 2017-08-11 00:59 Minec 阅读(98) 评论(0) 推荐(0)
摘要: 描述 在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如: hashcode("abcd") = (ascii(a) * 33 阅读全文
posted @ 2017-08-11 00:31 Minec 阅读(120) 评论(0) 推荐(0)
摘要: 描述 给一个链表,两两交换其中的节点,然后返回交换后的链表。 样例 思路: 每次交换两个节点的数据域的数据元素,很简单的一个置换。代码如下: 阅读全文
posted @ 2017-08-11 00:15 Minec 阅读(249) 评论(0) 推荐(0)
摘要: 题目: 给一个01矩阵,求不同的岛屿的个数。 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 样例: 思路: 根据提示,因为上下左右有1表示为一个岛,我们可以用深度优先遍历来解决。当遍历到“1”时,递归判断周围是否有“1”,若有,继续遍历;反之,则将已经遍历 阅读全文
posted @ 2017-08-10 23:50 Minec 阅读(500) 评论(0) 推荐(0)
摘要: 描述 请判定一个数独是否有效。 该数独可能只填充了部分数字,其中缺少的数字用 . 表示。 一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。 思路: 因为不用判断一个数独是否可解,因此根据数独定义(每一行/列数字皆不相同)可先判断每一行是否有相同的数字,再判断每一列是否有相 阅读全文
posted @ 2017-08-10 00:56 Minec 阅读(250) 评论(0) 推荐(0)
摘要: 原题 给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。 样例 给出数组[1,1,1,1,2,2,2],返回 1 主要思路 在不考虑时间复杂度的情况下,用for循环从第一个数开始与后面的数依次比较最后返回结果。代码如下: class Solution { public 阅读全文
posted @ 2017-08-09 23:40 Minec 阅读(116) 评论(0) 推荐(0)