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

简介: 给你一个下标从 0 开始的二维数组 variables ,其中 variables[i] = [ai, bi, ci, mi],以及一个整数 target 。如果满足以下公式,则下标 i 是 好下标:0 <= i < variables.length((aibi % 10)ci) % mi == target返回一个由 好下标 组成的数组,顺序不限 。

 题目

给你一个下标从 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;
          }
      }

      image.gif


      目录
      相关文章
      |
      2月前
      |
      算法 Java
      LeetCode(一)Java
      LeetCode(一)Java
      |
      4月前
      |
      算法 Java
      LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
      LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
      57 6
      |
      4月前
      |
      存储 算法 Java
      LeetCode经典算法题:打家劫舍java详解
      LeetCode经典算法题:打家劫舍java详解
      76 2
      |
      4月前
      |
      人工智能 算法 Java
      LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
      LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
      54 1
      |
      4月前
      |
      存储 算法 Java
      LeetCode经典算法题:预测赢家+香槟塔java解法
      LeetCode经典算法题:预测赢家+香槟塔java解法
      65 1
      |
      4月前
      |
      存储 算法 Java
      LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
      LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
      83 0
      |
      4月前
      |
      算法 Java
      LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
      LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
      56 0
      |
      4月前
      |
      存储 算法 Java
      LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
      LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
      45 0
      |
      4月前
      |
      算法 Java 索引
      LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
      LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
      40 0
      |
      4月前
      |
      存储 算法 Java
      LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
      LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
      48 0