网络优化行业怎么样,网站优化推广公司,织梦网站模板安装教程,百家号优化2562. 找出数组的串联值 - 力扣#xff08;LeetCode#xff09;
给你一个下标从 0 开始的整数数组 nums 。
现定义两个数字的 串联 是由这两个数值串联起来形成的新数字。
例如#xff0c;15 和 49 的串联是 1549 。
nums 的 串联值 最初等于 0 。执行下述操作直到 nums…2562. 找出数组的串联值 - 力扣LeetCode
给你一个下标从 0 开始的整数数组 nums 。
现定义两个数字的 串联 是由这两个数值串联起来形成的新数字。
例如15 和 49 的串联是 1549 。
nums 的 串联值 最初等于 0 。执行下述操作直到 nums 变为空
如果 nums 中存在不止一个数字分别选中 nums 中的第一个元素和最后一个元素将二者串联得到的值加到 nums 的 串联值 上然后从 nums 中删除第一个和最后一个元素。如果仅存在一个元素则将该元素的值加到 nums 的串联值上然后删除这个元素。
返回执行完所有操作后 nums 的串联值。 示例 1
输入nums [7,52,2,4]
输出596
解释在执行任一步操作前nums 为 [7,52,2,4] 串联值为 0 。- 在第一步操作中
我们选中第一个元素 7 和最后一个元素 4 。
二者的串联是 74 将其加到串联值上所以串联值等于 74 。
接着我们从 nums 中移除这两个元素所以 nums 变为 [52,2] 。- 在第二步操作中
我们选中第一个元素 52 和最后一个元素 2 。
二者的串联是 522 将其加到串联值上所以串联值等于 596 。
接着我们从 nums 中移除这两个元素所以 nums 变为空。
由于串联值等于 596 所以答案就是 596 。示例 2
输入nums [5,14,13,8,12]
输出673
解释在执行任一步操作前nums 为 [5,14,13,8,12] 串联值为 0 。
- 在第一步操作中
我们选中第一个元素 5 和最后一个元素 12 。
二者的串联是 512 将其加到串联值上所以串联值等于 512 。
接着我们从 nums 中移除这两个元素所以 nums 变为 [14,13,8] 。
- 在第二步操作中
我们选中第一个元素 14 和最后一个元素 8 。
二者的串联是 148 将其加到串联值上所以串联值等于 660 。
接着我们从 nums 中移除这两个元素所以 nums 变为 [13] 。
- 在第三步操作中
nums 只有一个元素所以我们选中 13 并将其加到串联值上所以串联值等于 673 。
接着我们从 nums 中移除这个元素所以 nums 变为空。
由于串联值等于 673 所以答案就是 673 。
思路
可以设置俩个指针分别指向数组的头和尾然后通过这俩个指针获取数组的值然后编写一个函数用于合成前后数值然后加一个判断数组里面是否剩一个然后相加
完整代码
class Solution {public long findTheArrayConcVal(int[] nums) {long sum 0;int start 0;int end nums.length - 1;while(startend){sumnumAdd(nums[start],nums[end]);start;end--;}if(start end){sum nums[start];}return sum;}public int numAdd(int start,int end){String st String.valueOf(start);String ed String.valueOf(end);String result start end;int num Integer.parseInt(result);return num;}
}