
java面试常见算法题
整理常见的面试算法题
_小鱼塘
理工男,程序员
展开
-
二进制求和
题目描述 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字1和0。 示例 示例1: 输入: a = "11", b = "1" 输出: "100" 示例2: 输入: a = "1010", b = "1011" 输出: "10101" 解题思路 整体思路是将两个字符串较短的用 00 补齐,使得两个字符串长度一致,然后从末尾进行遍历计...原创 2020-04-14 13:56:20 · 406 阅读 · 0 评论 -
14. 最长公共前缀
题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例 示例1: 输入: ["flower","flow","flight"] 输出: "fl" 示例2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明:所有输入只包含小写字母a-z。 解题思路 class Sol...原创 2020-03-13 09:09:41 · 192 阅读 · 0 评论 -
66. 加一
题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一,最高位数字存放在数组的首位, 数组中每个元素只存储单个数字,你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。 解题思路 ...原创 2020-03-12 10:12:33 · 150 阅读 · 0 评论 -
13. 罗马数字转整数
题目描述 罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并...原创 2020-03-12 09:37:23 · 113 阅读 · 0 评论 -
9. 回文数
题目描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 示例 1: 输入: 121 输出: true 示例2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一...原创 2020-03-12 09:12:21 · 118 阅读 · 0 评论 -
7. 整数反转
题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 实例 示例1: 输入: 123 输出: 321 实例2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...原创 2020-03-12 09:03:43 · 139 阅读 · 0 评论 -
26. 删除排序数组中的重复项
题目描述 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成; 示例1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元...原创 2020-03-10 11:03:47 · 162 阅读 · 0 评论 -
1. 两数之和
题目描述: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解题思路: 一开始,脑子里首先想到的方法就是两层循环,两两相加,如果和等于...原创 2020-03-10 10:49:18 · 230 阅读 · 0 评论