leetcode
丿ZhangT
这个作者很懒,什么都没留下…
展开
-
给定两个数组,编写一个函数来计算它们的交集。
这是力扣上的算法题,有兴趣的朋友可以访问一下这个网站,在这里记录一下我刷算法的经历,希望我能坚持下来。力扣:https://leetcode-cn.com/problems/intersection-of-two-arrays/题目:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]题解:暴力原创 2020-10-10 20:03:24 · 1252 阅读 · 0 评论 -
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sMsRsufE-1602331366878)(http://www.ztinfo.xyz/upload/2019/12/image-a7a5c67e921042d9ab2a40f5c396a819.png)]示例:输入: [“Hello”, “Alaska”, “Dad”, “Peace”]输出: [“Alaska”, “Dad”]思路:先遍历输入的字符串数组,取出首字符,定位到是在哪一行的字符串,取出那一行的字符串,原创 2020-10-10 20:02:54 · 381 阅读 · 0 评论 -
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”//首先把字符串转换成字符串数组//把字符串转换成StringBuffer对象目的调用reverse()方法进行翻转//翻转之后再放到原数组位置//把字符串数组转换成字符串public String reverseWords(String s) { //将字符串以空格切割等字符串数组 String [] arr = s.s原创 2020-10-10 20:02:11 · 2066 阅读 · 0 评论 -
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]//其实就是倒数第一和正数第一交换位置,倒数第二和正数第二交换位置,直到下标相等时候不交换public v原创 2020-10-10 20:01:39 · 2201 阅读 · 0 评论 -
查找字符串数组中每个字符串所对应的摩斯密码
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-","…-",".–","-…-","-.–","–…原创 2020-10-10 20:01:09 · 579 阅读 · 0 评论 -
宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出: 0分析:遍历J石头中每个字符,在遍历原创 2020-10-10 20:00:20 · 110 阅读 · 0 评论 -
IP地址无效化
题目给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。示例示例 1:输入:address = “1.1.1.1”输出:“1[.]1[.]1[.]1”示例 2:输入:address = “255.100.50.0” 输出:“255[.]100[.]50[.]0”分析:其实就是把字符串中的.全部替换成了[.] 第一种方法可以用java中的replaceAll("\.","[.]");第二原创 2020-10-10 19:59:52 · 1378 阅读 · 0 评论 -
删除链表中的节点
题目:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], node = 1原创 2020-10-10 19:59:17 · 104 阅读 · 0 评论 -
分割平衡字符串
题目在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量示例示例 1:输入:s = “RLRRLLRLRL”输出:4解释:s 可以分割为 “RL”, “RRLL”, “RL”, “RL”, 每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’。示例 2:输入:s = “RLLLLRRRLR”输出:3解释:s 可以分割为 “RL”, “LLLRRR”, “LR”,原创 2020-10-09 19:53:05 · 217 阅读 · 0 评论 -
删除最外层括号
题目有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 原创 2020-10-09 19:52:34 · 426 阅读 · 0 评论 -
转换成小写字母
题目实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例示例 1:输入: “Hello”输出: “hello”示例 2:输入: “here”输出: “here”示例 3:输入: “LOVELY”输出: “lovely”分析:这个比较简单,首先第一种方法可以直接调用JAVA中的Tolowercase()方法,把字符串转换成小写。第二种就是要明白’A’和’a’之间相差32,大写字符和小写字符之原创 2020-10-09 19:47:55 · 351 阅读 · 0 评论 -
合并二叉树
题目给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例分析:采用递归法,递归思想总共分为三大要素:第一要素:明确你这个函数想要干什么:给这两棵二叉树进行前序遍历,并让值相加,赋值给t1树上第二要素: 寻找递归结束条件:谁是null就返回另一个树的节点。第三要素:找出函数的等价关系式原创 2020-10-09 19:47:16 · 113 阅读 · 0 评论 -
机器人能否返回原点
题目在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。示例原创 2020-10-09 19:46:38 · 585 阅读 · 0 评论 -
除数博弈 + 数组拆分+山脉峰值
除数博弈题目:爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:选出任一 x,满足 0 < x < N 且 N % x == 0 。用 N - x 替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。示例示例 1原创 2020-10-05 17:41:55 · 116 阅读 · 0 评论