leetcode简单
渣渣辉一个,有错请指出!无则加勉!
想实习犯法吗
我很懒,不想简介给你看!
展开
-
LeetCode69.x的平方根
实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 暴力解法 class Solution { public int mySqrt(int x) { long i=1; while(i*i<=x){原创 2021-05-18 23:38:16 · 105 阅读 · 0 评论 -
LeetCode67.二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 输入: a = “11”, b = “1” 输出: “100” 思路: // 1 1 进位为0 carry=1,该位为0 进位为1 carry=1,该位为1 // 1 0或0 1 进位为0 carry=0 该位为1 进位为1,carry=1,该位为0 // 0 0 进位为0 carry=0 该位为0 进位为1原创 2021-05-17 12:10:41 · 110 阅读 · 0 评论 -
Leetcode 66.加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入:digits = [1,2,3] 输出:[1,2,4] 解释:输入数组表示数字 123。 我的思路将数组转换为数字加一后再转化为数组,但是发现会有溢出问题(pass) 解法 末位无进位,则末位加一即可,因为末位无进位,前面也不可能产生进位,比如 45 => 46 末位有进位,在中间位置进位停止,原创 2021-05-16 17:52:05 · 126 阅读 · 0 评论 -
LeetCode 53.最大子序和
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 个人除了暴力解法么有思路。。。。 官方解法1:贪心算法 class Solution { public int maxSubArray(int[] nums) { if(nums.length==1)原创 2021-05-13 16:02:25 · 115 阅读 · 0 评论 -
Leetcode 38.外观数列
题目 给定一个正整数 n ,输出外观数列的第 n 项。 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列: countAndSay(1) = “1” countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。 前五项如下: 1 11 21 1211 111221 第一项是数字 1 描述前一项,这个数是 1 即 “ 一 个 1 ”,记作 “11” 描原创 2021-05-12 13:43:01 · 110 阅读 · 0 评论 -
LeetCode 28.实现strStr()KMP算法
**题目:**实现 strStr() 函数。 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。 相关内容 (1)charAt() 方法原创 2021-05-11 14:05:00 · 95 阅读 · 0 评论 -
LeetCode 27.移除元素
题目27 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。 //你可以想象内部操作如下: // nums 是以“引用”方式传递的。也就是说,不对实参作任何原创 2021-05-10 12:56:17 · 121 阅读 · 0 评论 -
LeetCode 21.合并两个有序链表
**题目:**将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 题解1(迭代)创建一个新的链表,用cur为头部开始连接,选取两个链表中的较小元素放入新的链表中,最后如果还剩余某个链表,则将其剩下的全部内容连接到新的链表中。 创建一个哑结点来处理边界条件ListNode preHead=new ListNode(0); public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1原创 2021-05-09 16:51:30 · 162 阅读 · 0 评论 -
LeetCode 20.有效的括号
题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 题解1:很显然看到这个题的想法就是使用栈来进行 栈 Stack的基本使用: 初始化 Stack stack=new Stack() 判断是否为空 stack.empty() 取栈顶值(不出栈) stack.peek() 进栈 stack.push(Object); 出栈 stack.pop(); 思路:(1原创 2021-05-08 12:40:59 · 147 阅读 · 0 评论 -
LeetCode 14.最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 1.String和char类型之间的互相转换 String->char String.toCharArray() char->String String s = String.valueOf('c'); //效率最高的方法 String s = Character.toString('c'); ...原创 2021-05-07 21:11:46 · 145 阅读 · 0 评论 -
LeetCode 1486.数组异或操作
题目描述:给你两个整数,n 和 start 。 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。 请返回 nums 中所有元素按位异或(XOR)后得到的结果。 题解1:暴力解法 int xorOperation(int n, int start) { int result = start, i; for (i = 1; i < n; i++) { result = result ^ (原创 2021-05-07 13:46:05 · 158 阅读 · 0 评论 -
leetcode 07.整数翻转
1.给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 -2147483648=-231<x<231-1=2147483647 难点:给定了数值的范围,需要对结果进行判断 **解法1:**将翻转过程的结果设置成long类型的数据,在翻转完成后,对数值进行判断(好像不符合题意,但我看到大佬的解法,我内心os:牛批) pu原创 2021-05-06 10:21:59 · 88 阅读 · 0 评论 -
HashMap&& LeetCode 13.罗马数组转换为整数
1.HashMap 类位于 java.util 包中,使用前需要引入它,语法格式如下: import java.util.HashMap; // 引入 HashMap 类 2.HashMap<Integer,String> hashmap=new HashMap<>(); 基本类型 引用类型 boolean Boolean byte Byte short Short int Integer long Long float原创 2021-05-06 13:22:28 · 147 阅读 · 0 评论