编辑
2024-05-13
算法题
00
请注意,本文编写于 362 天前,最后修改于 361 天前,其中某些信息可能已经过时。

image.png

java
public class Solution { public String multiply(String num1, String num2) { if (num1.equals("0") || num2.equals("0")) { return "0"; } int[] result = new int[num1.length() + num2.length()]; for (int i = num1.length() - 1; i >= 0; i--) { for (int j = num2.length() - 1; j >= 0; j--) { int mul = (num1.charAt(i) - '0') * (num2.charAt(j) - '0'); int p1 = i + j, p2 = i + j + 1; int sum = mul + result[p2]; result[p2] = sum % 10; result[p1] += sum / 10; } } StringBuilder sb = new StringBuilder(); for (int i = 0; i < result.length; i++) { if (i == 0 && result[i] == 0) { continue; } sb.append(result[i]); } return sb.toString(); } }

image.png

java
public class Solution { public String[] findRestaurant(String[] list1, String[] list2) { Map<String, Integer> indexMap = new HashMap<>(); for (int i = 0; i < list1.length; i++) { indexMap.put(list1[i], i); } int minIndexSum = Integer.MAX_VALUE; List<String> commonRestaurants = new ArrayList<>(); for (int i = 0; i < list2.length; i++) { if (indexMap.containsKey(list2[i])) { // 共同爱好 int indexSum = i + indexMap.get(list2[i]); // 计算索引和 if (indexSum < minIndexSum) { //是否是最小索引和 minIndexSum = indexSum; commonRestaurants.clear(); commonRestaurants.add(list2[i]); } else if (indexSum == minIndexSum) { commonRestaurants.add(list2[i]); } } } return commonRestaurants.toArray(new String[0]); //return commonRestaurants.toArray(new String[0]); } }

image.png

java
public class Solution { public int coinChange(int[] coins, int amount) { // 初始化一个比amount大的数,表示无法凑成的金额 int max = amount + 1; // 初始化dp数组,所有值设为最大值 int[] dp = new int[amount + 1]; Arrays.fill(dp, max); // 金额为0时,不需要任何硬币 dp[0] = 0; // 遍历所有金额 for (int i = 1; i <= amount; i++) { // 遍历所有硬币 for (int coin : coins) { // 如果当前金额大于等于硬币面值 if (i >= coin) { // 更新dp[i]为dp[i]和dp[i - coin] + 1的最小值 dp[i] = Math.min(dp[i], dp[i - coin] + 1); } } } // 如果dp[amount]没有被更新过,说明无法凑成该金额 return dp[amount] == max ? -1 : dp[amount]; } }

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!