100155. 双模幂运算 --力扣 --JAVA

2023-12-14 12:54:37

题目

给你一个下标从?0?开始的二维数组?variables?,其中?variables[i] = [ai, bi, ci, mi],以及一个整数?target?。

如果满足以下公式,则下标?i?是?好下标

  • 0 <= i < variables.length
  • ((aibi % 10)ci) % mi == target

返回一个由?好下标?组成的数组,顺序不限?。

解题思路

  1. 循环遍历根据题目获取所需要的每个值;
  2. 幂次方后再取余等于先取余再进行幂次方;
  3. 将最后结果与target进行对比获取合适的索引。

代码展示

class Solution {
    public List<Integer> getGoodIndices(int[][] variables, int target) {
        List<Integer> ans = new ArrayList<>();
        int n = variables.length;
        for(int i = 0; i < n; i++){
            int a = variables[i][0];
            int b = variables[i][1];
            int c = variables[i][2];
            int m = variables[i][3];
            a = a % 10;
            int val1 = 1;
            for (int j = 0; j < b; j++){
                val1 = val1 * a % 10;
            }
            val1 = val1 % m;
            int val2 = 1;
            for (int j = 0; j < c; j++){
                val2 = val2 * val1 % m;
            }
            if(val2 == target){
                ans.add(i);
            }
        }
        return ans;
    }
}

文章来源:https://blog.csdn.net/qq_45794129/article/details/134914176
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。