leetcode
%程序羊%
低姿态求学,高姿态生活
展开
-
第一个只出现一次的字符
字符串题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)示例:输入:"google"输出:4分析:看到题目,我们肯定首先想到的是遍历字符串用for(let i of str) 进行遍历之后拿到的是一个个的字母然后想如果有两个或者多个一样的,那这两个字母的下标肯定 不一样,所以我们可以遍历之后再利用字符串的indexOf方法和lastIndexOf方法,原创 2021-03-17 15:03:22 · 58 阅读 · 0 评论 -
替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。实例:输入:"We Are Happy"输出:"We%20Are%20Happy"代码:(思路正确但是在牛客网上说replaceAll is not a function) let s = "We Are Happy"; function replaceSpace(s){ let原创 2021-03-17 13:52:42 · 84 阅读 · 0 评论 -
两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.解答:/** * Definition for singly-linked list. * function ListNode(val, next)原创 2021-03-16 18:27:45 · 67 阅读 · 0 评论 -
螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]代码var spiralOrder = function(matrix) { if (matrix.length === 0) return; const res = [] let left =原创 2021-03-15 22:30:32 · 117 阅读 · 0 评论 -
力扣算法题(三)两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。思路:我第一眼看到这题想到的是之前做过的比较大小,找最大最小值,这个题很简单,用了两个循环,使其两数相加,如果符合就输出上代码:var twoSum = function(nums, target) { for(var i = 0;i<nums.length;i++){ for(var j = i+1;j<.原创 2020-12-08 19:32:41 · 137 阅读 · 0 评论 -
力扣算法题(二)存在重复元素
给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。例:输入: [1,2,3,1]输出: true输入: [1,2,3,4]输出: false输入: [1,1,1,3,3,4,3,2,4,2]输出: true思路:利用数组方法sort进行排序,判断前一个和后一个是否相等,只要相等就返回true,否则返回false.arr.sort(function(a,b) return a-b).原创 2020-12-07 22:08:49 · 213 阅读 · 0 评论 -
力扣算法题(一)比较含空格的字符串
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。例:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。思路:主要思想就是遇到一个#号就判断一次,靠for循环进行判断,建立两个空数组是用来存放我们筛选过的元素。如果符合即不等于#,我们就把这个字母放进自己创建的数组中,否则,让数组执行一次pop把之前存进的最后一个删除。题.原创 2020-12-07 18:38:24 · 564 阅读 · 0 评论 -
力扣算法题(四)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。示例:输入: 123输出: 321输入: -123输出: -321输入: 120输出: 21思路:首先是考虑输入的数是正数还是负数,整数的话:变成字符串->转成数组->通过方法reverse()将数组内元素倒置->转成字符串->转成数字原创 2020-12-08 19:53:14 · 67 阅读 · 0 评论