草庐IT

$每日答题

全部标签

【每日挠头算法题】Leetcode 989. 数组形式的整数加法 —— 高精度加法解法

👑作者主页:@进击的安度因🏠学习社区:进击的安度因(个人社区)📖专栏链接:每日挠头算法题文章目录一、题目描述二、思路及代码实现如果无聊的话,就来逛逛我的博客栈吧!🌹今天为大家带来的是力扣上的一道简单题:数组形式的整数加法。这道题我在2个月前就尝试过,但是没有解答出来。两个月后再做这道题目,就变得没那么难了。这次我将以高精度加法进行求解,让我们开始吧!一、题目描述链接:989.数组形式的整数加法描述:整数的数组形式num是按照从左到右的顺序表示其数字的数组。例如,对于num=1321,数组形式是[1,3,2,1]。给定num,整数的数组形式,和整数k,返回整数num+k的数组形式。示例1:输入:

【每日挠头算法题】Leetcode 989. 数组形式的整数加法 —— 高精度加法解法

👑作者主页:@进击的安度因🏠学习社区:进击的安度因(个人社区)📖专栏链接:每日挠头算法题文章目录一、题目描述二、思路及代码实现如果无聊的话,就来逛逛我的博客栈吧!🌹今天为大家带来的是力扣上的一道简单题:数组形式的整数加法。这道题我在2个月前就尝试过,但是没有解答出来。两个月后再做这道题目,就变得没那么难了。这次我将以高精度加法进行求解,让我们开始吧!一、题目描述链接:989.数组形式的整数加法描述:整数的数组形式num是按照从左到右的顺序表示其数字的数组。例如,对于num=1321,数组形式是[1,3,2,1]。给定num,整数的数组形式,和整数k,返回整数num+k的数组形式。示例1:输入:

每日一题算法

数字在升序数组中出现的次数描述给定一个长度为n的非降序数组和一个非负数整数k,要求统计k在数组中出现的次数解析排序数组的查找问题首先考虑二分法使用二分法找到左右边界的位置,然后长度一减即可解题思路:排序数组的查找问题首先考虑使用二分法解决,其可将遍历法的线性级别时间复杂度降低至对数级别算法流程:1、初始化:声明i,j双指针分别指向array数组左右两端2、循环二分:设m=(i+j)/2为每次二分的中点("/"代表向下取整除法,因此恒有i≤m1、当array[m]>array[j]时:m一定在左排序数组中,即旋转点x一定在[m+1,j]闭区间内,因此执行i=m+12、当array[m]代码pac

每日一题算法

数字在升序数组中出现的次数描述给定一个长度为n的非降序数组和一个非负数整数k,要求统计k在数组中出现的次数解析排序数组的查找问题首先考虑二分法使用二分法找到左右边界的位置,然后长度一减即可解题思路:排序数组的查找问题首先考虑使用二分法解决,其可将遍历法的线性级别时间复杂度降低至对数级别算法流程:1、初始化:声明i,j双指针分别指向array数组左右两端2、循环二分:设m=(i+j)/2为每次二分的中点("/"代表向下取整除法,因此恒有i≤m1、当array[m]>array[j]时:m一定在左排序数组中,即旋转点x一定在[m+1,j]闭区间内,因此执行i=m+12、当array[m]代码pac

每日算法题之扑克牌顺子

JZ61扑克牌顺子描述现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。有如下规则:1.A为1,J为11,Q为12,K为13,A不能视为142.大、小王为0,0可以看作任意牌3.如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。4.数据保证每组5个数字,每组最多含有4个零,数组的数取值为[0,13]具体做法:将nums数组依次装入set集合,遇到0则返回装下一个元素,出现重复元素则返回false,并在其中记录max,min,最终max-min>=5的都不是顺子;代码packageesay.JZ61扑克牌顺子;importjava.ut

每日算法题之扑克牌顺子

JZ61扑克牌顺子描述现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。有如下规则:1.A为1,J为11,Q为12,K为13,A不能视为142.大、小王为0,0可以看作任意牌3.如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。4.数据保证每组5个数字,每组最多含有4个零,数组的数取值为[0,13]具体做法:将nums数组依次装入set集合,遇到0则返回装下一个元素,出现重复元素则返回false,并在其中记录max,min,最终max-min>=5的都不是顺子;代码packageesay.JZ61扑克牌顺子;importjava.ut

每日算法题之买卖股票的最好时机(一)

买卖股票的最好时机(一)描述假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天2.如果不能获取到任何利润,请返回03.假设买入卖出均无手续费解法一:暴力(常规大循环解决)思路步骤:最显而易见的解法,当然可能并不是最优的解法声明变量ans=0存放最终答案两层for循环,分别找到数组中最大的差值,表示利润最大化比较并更新ans的值返回ans即为答案代码intans=0;for(inti=0;ian

每日算法题之买卖股票的最好时机(一)

买卖股票的最好时机(一)描述假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天2.如果不能获取到任何利润,请返回03.假设买入卖出均无手续费解法一:暴力(常规大循环解决)思路步骤:最显而易见的解法,当然可能并不是最优的解法声明变量ans=0存放最终答案两层for循环,分别找到数组中最大的差值,表示利润最大化比较并更新ans的值返回ans即为答案代码intans=0;for(inti=0;ian

每日算法之不用加减乘除做加法

JZ65不用加减乘除做加法描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。数据范围:两个数都满足-10\len\le1000−10≤n≤1000进阶:空间复杂度O(1)O(1),时间复杂度O(1)O(1)方法一:位运算非递归(推荐使用)思路:由于题目禁止我们使用+,-,*,/运算符,我们需要通过位运算来实现加法。我们需要通过循环迭代两个变量实现,一个变量指代进位,一个变量指代非进位。位运算中两数进行异或运算可以提供两数加和后二进制非进位信息,位运算中的两数进行与运算的结果可以提供两数加和后的二进制进位信息。因此我们将两数与运算的结果进行循环左移一位,并在下一轮

每日算法之不用加减乘除做加法

JZ65不用加减乘除做加法描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。数据范围:两个数都满足-10\len\le1000−10≤n≤1000进阶:空间复杂度O(1)O(1),时间复杂度O(1)O(1)方法一:位运算非递归(推荐使用)思路:由于题目禁止我们使用+,-,*,/运算符,我们需要通过位运算来实现加法。我们需要通过循环迭代两个变量实现,一个变量指代进位,一个变量指代非进位。位运算中两数进行异或运算可以提供两数加和后二进制非进位信息,位运算中的两数进行与运算的结果可以提供两数加和后的二进制进位信息。因此我们将两数与运算的结果进行循环左移一位,并在下一轮