
算法
ilyar1015_
Hello word
展开
-
电话号码的字母组合(17)
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 提示: 0 <= digits.length <= 4 digits[i] 是范围 ['2', '9'] 的一个数字。 力扣第17题:电话号码的字母组合 解题思路: 从题目得到,digits的范围在2~9之间,所有我们可以不考虑0和1。示例2已经提示到字符串位可能为空,所以需要单独处理一下。当然,在题目没有明.原创 2021-06-15 23:32:10 · 140 阅读 · 0 评论 -
删除排序链表中的重复元素
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。 返回同样按升序排列的结果链表。 力扣第83题: 删除排序链表中的重复元素 解题思路: 首先将链表复制一份,命名为node,以免丢失链表头。链表若为空,直接返回。我们判断链表值是否与第二个值相同,如果相等,就做链表删除操作,即node.next = node.next.next如下图所示。具体实现代码请看最下方代码实现 输入:head = [1,1,2] 输出:[1,2] .原创 2021-06-07 00:38:55 · 130 阅读 · 0 评论 -
两位数相加(2)
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 力扣第2题:两数相加 解题思路: 首先题目可得,每位数字都是按照 逆序 的方式存储的,如l1为2->4>3,l2为5->6->4;那我们得到的就是342.原创 2021-05-31 23:43:43 · 392 阅读 · 3 评论 -
最长无重复子数组(NC41)
给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。 子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组 牛客网:[NC41 最长无重复子数组 官方示例 示例1 输入 [2,3,4,5] 输出 4 示例2 输入 [2,2,3,4,3] 输出 3 示例3 输入 [9] 输出 1 示例4 输入 [2,2,3,4,8,99,3] 输出 5 实例6 输入 [1, 2, 3, 4, 4, 3, 3,.原创 2021-05-28 00:41:54 · 637 阅读 · 0 评论 -
斐波那契数列-java实现
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34 。可以其简写为 使用Java程序实现斐波那契数列某一位的值。 代码实现方式 第一种方式(递归) public int fibonacci (int n) { if (n == 1 || n ==2) return 1; else retu.原创 2021-05-25 00:53:45 · 332 阅读 · 0 评论 -
寻求峰值(NC107)
题目描述 山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。 假设 nums[-1] = nums[n] = -∞。 牛客网:NC107括号序列 示例1 输入 [2,4,1,2,7,8,4] 输出 5 解题思路 首先题目提到山峰元素是大于或等于左右相邻值的元素,相邻元素值不相等,并且nums[-1] = nums[n] = -∞。最终需要的是山峰的最大索引,本题目我们可以总后往前遍历,需要值得.原创 2021-05-10 23:40:06 · 118 阅读 · 0 评论 -
打印乘法口诀表的5种形式
实现方式 下面使用java做乘法口诀表的5种形式,使用两层嵌套的for循环可以完成。其中代表行,j代表列。一下是代码实例。 第一种(完成) public void multiplicationTable() { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { System.out.print(String.format("%d*%d=%d\t", i, j, i * j))原创 2021-05-05 00:59:20 · 299 阅读 · 0 评论 -
括号序列
题目描述 给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列 括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。 牛客网:NC52括号序列 #示例1 输入 "[" 输出 false 示例2 输入 "[]" 输出 true 想法 本题我们可以使用栈来实现,括号的出现形式是成对嵌套形式的。遍历输入的字符串,如果遇到左括号,将对应的右括号直接入栈。遇到右括号时,就判断栈是否为空且出栈元素.原创 2021-05-03 23:38:36 · 106 阅读 · 0 评论 -
归并排序
归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 两路归并排序算法思路 分而治之(divide - conquer);每个递归过程涉及三个步骤 分解: 把待排序的 n 个元素的序列分解成两个子序列, 每个子序列包括 n/2 个元素. 治理: 对每个子序列分别调用归并排序MergeS...原创 2021-04-21 01:14:00 · 95 阅读 · 0 评论