题目
实现一个函数可以实现超级大数的加法操作,完成正负数之间的相加
用例
* 1. 用例
* 输入:12345 123
* 输出:12468
*
* 2. 用例
* 输入:12345 -123
* 输出:12222
*
* 3. 用例
* 输入:12345 -12345
* 输出:0
*
* 4.用例
* 输入:-12345 123
* 输出:-12222
解题思路
用数组模拟加减法,字符串作为返回
代码
1 | public class BigDigitalUtil { |
题目493. 翻转对
给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。
你需要返回给定数组中的重要翻转对的数量。
用例
输入: [1,3,2,3,1]
输出: 2
输入: [2,4,3,5,1]
输出: 3
解题思路
归并排序,排序之后检查前面的部分中nums[i]>2*nums[j]的数量,由于前面部分已经排好序了,所以随着i的增大,其符合要求
的数量也随j而增大
本质就是归并排序的应用,相似的题目还有第315题目,剑指offer的51题
代码
1 | class Solution { |
题目43. 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
用例
输入: num1 = “2”, num2 = “3”
输出: “6”
输入: num1 = “123”, num2 = “456”
输出: “56088”
解题思路
用一个数组来模拟乘法过程
代码
1 | class Solution { |
题目546. 移除盒子
给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色。
你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k >= 1),这样一轮之后你将得到 k*k 个积分。
当你将所有盒子都去掉之后,求你能获得的最大积分和。
用例
输入:boxes = [1,3,2,2,2,3,4,3,1]
输出:23
解题思路
参考两个官方题解
https://leetcode-cn.com/problems/remove-boxes/solution/yi-chu-he-zi-by-leetcode-solution/
代码
1 | class Solution { |
本文作者:
ketsudou
发布时间: 2020-08-13
最后更新: 2020-08-15
本文标题: leetcode-day30
本文链接: http://huangketsudou.github.io/2020/08/13/leetcode-day30/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处
发布时间: 2020-08-13
最后更新: 2020-08-15
本文标题: leetcode-day30
本文链接: http://huangketsudou.github.io/2020/08/13/leetcode-day30/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处