![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
Zorione
这个作者很懒,什么都没留下…
展开
-
179. 最大数
给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例 1: 输入:nums = [10,2] 输出:“210” 示例 2: 输入:nums = [3,30,34,5,9] 输出:“9534330” 示例 3: 输入:nums = [1] 输出:“1” 示例 4: 输入:nums = [10] 输出:“10” 提示: 1 <= nums.length <= 100 0 <= nums[原创 2021-04-12 10:05:58 · 77 阅读 · 0 评论 -
627. 变更性别
给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。 注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。 例如: id name sex salary 1 A m 2500 2 B f 1500 3 C m 5500 4 D f 500 运行你所编写的更新语句之后,将会得到以下表:原创 2021-04-09 17:20:25 · 91 阅读 · 0 评论 -
1672. 最富有客户的资产总量
给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。 客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。 示例 1: 输入:accounts = [[1,2,3],[3,2,1]] 输出:6 解释: 第 1 位客户的资产总量 = 1 + 2 + 3 = 6 第 2 位客户的资产总量 = 3 + 2 + 1 = 6 两位客原创 2021-04-09 17:02:28 · 104 阅读 · 0 评论 -
771. 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。 示例 1: 输入: J = “aA”, S = “aAAbbbb” 输出: 3 示例 2: 输入: J = “z”, S = “ZZ” 输出: 0 注意: S 和 J 最多含有50个字母。 J 中的字符不重复。 这是一道简单的入门题,解题思路如下: 题原创 2021-04-09 16:34:53 · 56 阅读 · 0 评论 -
数字在排序数组中出现的次数
时间限制:1秒 空间限制:32768K 热度指数:324022 本题知识点: 数组 算法知识视频讲解 题目描述 统计一个数字在排序数组中出现的次数。 这道题比较简单,直接for循环取出每个int数组中的数和k进行比较,相等就count++ 实现如下: public class Solution { public int GetNumberOfK(int [] array , int k) ...原创 2019-11-28 12:47:05 · 79 阅读 · 0 评论 -
两个链表的第一个公共结点
时间限制:1秒 空间限制:32768K 热度指数:287346 本题知识点: 链表 算法知识视频讲解 题目描述 输入两个链表,找出它们的第一个公共结点。 我们可以先遍历一遍找出两个链表的长度,长的一方先让指针指向与另一个链表在同一个节点上,使两个链表的后续长度相同,然后同时推动两个链表的指针前进,如果相等就返回该节点。 实现代码如下: /* public class ListNode { ...原创 2019-11-27 13:11:00 · 77 阅读 · 0 评论 -
数组中的逆序对
时间限制:2秒 空间限制:32768K 热度指数:437553 本题知识点: 数组 算法知识视频讲解 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,si...翻译 2019-11-26 13:42:11 · 83 阅读 · 0 评论 -
第一个只出现一次的字符
时间限制:1秒 空间限制:32768K 热度指数:346162 本题知识点: 字符串 算法知识视频讲解 题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 思路: 我们可以先把给定的字符串转为字符数组,把每个字符放入map集合中,重复的就把value值加1,最后遍历,遇到第一个...原创 2019-11-25 12:54:23 · 123 阅读 · 0 评论 -
丑数
时间限制:1秒 空间限制:32768K 热度指数:364582 本题知识点: 穷举 算法知识视频讲解 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * ...原创 2019-11-23 13:01:34 · 114 阅读 · 0 评论 -
把数组排成最小的数(剑指offer)
时间限制:1秒 空间限制:32768K 热度指数:327747 本题知识点: 数组 算法知识视频讲解 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 刚看到这个题目小伙伴是不是有点蒙圈呢 我们来分析一下解题思路, 我们看下题目中的例子,题目是把数组中每个坐标上...原创 2019-11-20 13:11:37 · 79 阅读 · 0 评论 -
整数中1出现的次数(从1到n整数中1出现的次数)
时间限制:1秒 空间限制:32768K 热度指数:243838 本题知识点: 查找 数学 算法知识视频讲解 题目描述 求出1-13的整数中1出现的次数,并算出100-1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(...原创 2019-11-12 12:52:13 · 124 阅读 · 0 评论 -
连续子数组的最大和(利用循环和动态规划思想解题)
时间限制:1秒 空间限制:32768K 热度指数:316034 本题知识点: 数组 算法知识视频讲解 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,...原创 2019-11-09 13:27:14 · 164 阅读 · 0 评论 -
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
最小的K个数 时间限制:1秒 空间限制:32768K 热度指数:585563 本题知识点: 数组 高级算法 算法知识视频讲解 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 这个题是要在给出的数组中找出随意定义的数字数量,找出数组中从小到大的数到规定的数量为止 既然找出最小的N个数,那么意味着可以先把数组中的数添...原创 2019-11-08 12:49:11 · 2070 阅读 · 1 评论 -
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在
时间限制:1秒 空间限制:32768K 热度指数:445397 本题知识点: 数组 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 首先题目告诉我们要我们要找出一个数字在数组中出现的次数超过数组的一半的数,我们知道这样的数字不...原创 2019-11-07 13:00:18 · 184 阅读 · 0 评论 -
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
本题我们首先想到的就是递归方式解答,我们先把输入的字符串转为字符数组,然后固定第一位数交换除第一位数的其他位数,两两交换,把每组交换过后的字符串与集合中其他交换遍历生成的字符串进行比较,不相同则放入集合,然后交换一二位,重复进行递归遍历,直到第一个数与最后一个数交换结束,把所有字符串按照字母排序输出 下面我们看一下例子: import java.util.ArrayList; import jav...原创 2019-10-31 13:35:06 · 540 阅读 · 0 评论 -
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 时间限制:1秒 空间限制:32768K 热度指数:337124 本题知识点: 链表 树 算法知识视频讲解 本题解析: 首先我们先看一下二叉搜索树和双向链表各自定义: 在二叉搜索树中,每个结点都有两个分别指向其左、右子树的指针,左子树结点的值总是小于父结点的值,右子树结点的值总是大于父...原创 2019-10-30 13:38:16 · 613 阅读 · 0 评论