随笔分类 -  算法

摘要:20、最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 。 示例 1: 示例 2: 说明: 所有输入只包含小写字母 。 答案解析: 阅读全文
posted @ 2019-04-25 16:09 、思考致富 阅读(102) 评论(0) 推荐(0)
摘要:24、合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 答案解析: 阅读全文
posted @ 2019-04-24 20:51 、思考致富 阅读(113) 评论(0) 推荐(0)
摘要:23、反转链表 反转一个单链表。 示例: 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 答案解析: 阅读全文
posted @ 2019-04-24 20:50 、思考致富 阅读(111) 评论(0) 推荐(0)
摘要:22、删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 答案解析: java / Definition for singly linked list. public clas 阅读全文
posted @ 2019-04-24 20:48 、思考致富 阅读(86) 评论(0) 推荐(0)
摘要:21、删除链表中的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 head = [4,5,1,9],它可以表示为: 示例 1: 示例 2: 说明: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是 阅读全文
posted @ 2019-04-24 20:47 、思考致富 阅读(123) 评论(0) 推荐(0)
摘要:18、实现strStr() 实现 "strStr()" 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 1 。 示例 1: 示例 2: 说明: 当 是空字符串时,我们应 阅读全文
posted @ 2019-04-23 20:43 、思考致富 阅读(110) 评论(0) 推荐(0)
摘要:17、字符串转换整数 (atoi) 请你来实现一个 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数 阅读全文
posted @ 2019-04-23 20:42 、思考致富 阅读(191) 评论(0) 推荐(0)
摘要:15、有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 示例 2: 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? 答案解析: java class 阅读全文
posted @ 2019-04-23 20:41 、思考致富 阅读(137) 评论(0) 推荐(0)
摘要:16、验证回文字符串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明: 本题中,我们将空字符串定义为有效的回文串。 示例 1: 示例 2: 答案解析: java class Solution { public boolean isPalindrome(Stri 阅读全文
posted @ 2019-04-23 20:41 、思考致富 阅读(128) 评论(0) 推荐(0)
摘要:14、字符串中的第一个唯一字符 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 1。 案例: 注意事项: 您可以假定该字符串只包含小写字母。 答案解析: java import java.util. ; class Solution { public int firs 阅读全文
posted @ 2019-04-23 20:40 、思考致富 阅读(249) 评论(0) 推荐(0)
摘要:13、整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 示例 2: 示例 3: 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 答案解析: ja 阅读全文
posted @ 2019-04-23 20:37 、思考致富 阅读(112) 评论(0) 推荐(0)
摘要:12、反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 的形式给出。 不要给另外的数组分配额外的空间,你必须 原地修改输入数组 、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 "ASCII" 码表中的可打印字符。 示例 1: 示例 2: 答案 阅读全文
posted @ 2019-04-23 20:33 、思考致富 阅读(129) 评论(0) 推荐(0)
摘要:11、旋转图像 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。 请不要 使用另一个矩阵来旋转图像。 示例 1: 示例 2: 答案解析: java class Solution { public v 阅读全文
posted @ 2019-04-22 20:51 、思考致富 阅读(160) 评论(0) 推荐(0)
摘要:10、有效的数独 判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 1. 数字 在每一行只能出现一次。 2. 数字 在每一列只能出现一次。 3. 数字 在每一个以粗实线分隔的 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字, 阅读全文
posted @ 2019-04-22 20:50 、思考致富 阅读(299) 评论(0) 推荐(0)
摘要:9、两数之和 给定一个整数数组 和一个目标值 ,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 答案解析: java import java.util. ; class Solution { 阅读全文
posted @ 2019-04-22 20:49 、思考致富 阅读(127) 评论(0) 推荐(0)
摘要:8、移动零 给定一个数组 ,编写一个函数将所有 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 说明 : 1. 必须在原数组上操作,不能拷贝额外的数组。 2. 尽量减少操作次数。 答案解析: java class Solution { public void moveZeroes(int[] 阅读全文
posted @ 2019-04-22 20:48 、思考致富 阅读(96) 评论(0) 推荐(0)
摘要:6、两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 示例 2: 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。 进阶: 如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums 阅读全文
posted @ 2019-04-22 20:46 、思考致富 阅读(103) 评论(0) 推荐(0)
摘要:7、加一 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 示例 2: 答案解析: java class Solution { public in 阅读全文
posted @ 2019-04-22 20:46 、思考致富 阅读(82) 评论(0) 推荐(0)
摘要:5、只出现一次的数字 给定一个 非空 整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 答案解析: java import java.util.Arrays; 阅读全文
posted @ 2019-04-22 20:45 、思考致富 阅读(104) 评论(0) 推荐(0)
摘要:3、旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。 答案解析: 阅读全文
posted @ 2019-04-22 20:44 、思考致富 阅读(162) 评论(0) 推荐(0)