实现 pow(x, n) ,即计算 x 的 n 次幂函数。
示例 1:
输入: 2.00000, 10
输出: 1024.00000
示例 2:
输入: 2.10000, 3
输出: 9.26100
示例 3:
输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25
class Solution { //迭代 public double myPow(double x, int n) { double res = 1.0; for (int i = n; i != 0; i /= 2) { if (i % 2 != 0) { res *= x; } x *= x; } return n > 0 ? res : 1.0 / res; } }
给你两个数组,arr1 和 arr2,
arr2 中的元素各不相同
arr2 中的每个元素都出现在 arr1 中
对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。
示例:
输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
输出:[2,2,2,1,4,3,3,9,6,7,19]
提示:
arr1.length, arr2.length <= 1000
0 <= arr1[i], arr2[i] <= 1000
arr2 中的元素 arr2[i] 各不相同
arr2 中的每个元素 arr2[i] 都出现在 arr1 中
class Solution { public int[] relativeSortArray(int[] arr1, int[] arr2) { int[] nums = new int[1001]; //统计元素个数 int[] res = new int[arr1.length]; int index = 0; //索引 int max = 0; //存放最大值 for (int i : arr1) { //遍历arr1 nums[i]++; //统计i的个数 max = Math.max(max, i); //每次比较出较大值 } for (int i : arr2) { //遍历arr2,将arr1中元素往res中存放 while (nums[i] > 0) { res[index++] = i; nums[i]--; } } for (int i = 0; i <= max; i++) { //将arr1中剩余的元素存放到res中 while (nums[i] > 0) { res[index++] = i; nums[i]--; } } return res; } }