ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LeetCode刷题记---2000/1414/1725

2022-02-06 21:59:07  阅读:141  来源: 互联网

标签:index int 1725 list --- 2000 ans rectangles public


(该模块仅为记录本人的leetcode的练习记录)

文章目录

2000.反转单词前缀(easy)

在这里插入图片描述
解题思路:先找到匹配的字符位置,若是不存在则直接返回源字符串,反正反转前部分。

代码:

package LeetCode.Code2022.February;

public class Solution2000 {
   public String reversePrefix(String word, char ch) {
       int index = -1;
       index = word.indexOf(ch);
       if (index == -1) {
           return word;
       }
       return new StringBuilder(word.substring(0, index + 1)).reverse() + word.substring(index + 1);
   }
}

1414.和为K的最少斐波那契数字数目(medium)

在这里插入图片描述
解题思路:先得到所有小于k的斐波那契额数集,存放在list中,然后每次从list中获取最大的数与K进行比较,若该数小于等于K则将该数视为解集之一,然后将K减去该数,反之获取第二大的数进行比较,重复上述步骤。

代码:

package LeetCode.Code2022.February;

import java.util.ArrayList;
import java.util.List;

public class Solution1414 {
    public int findMinFibonacciNumbers(int k) {

        List<Integer> list = fibonacci(k);
        int ans = 0;
        int index = list.size() - 1;
        while (k > 0) {
            if (list.get(index) <= k) {
                k -= list.get(index);
                ans++;
            } else {
                index = index > 0 ? index - 1 : 0;
            }

        }
        return ans;

    }
    List<Integer> fibonacci(int k) {
        List<Integer> hashSet = new ArrayList<>();
        int f1 = 1;
        int f2 = 1;
        int fn = 0;
        hashSet.add(1);
        while (fn <= k) {
            fn = f1 + f2;
            f1 = f2;
            f2 = fn;
            hashSet.add(fn);
        }
        return hashSet;
    }

}

1725.可以形成最大正方形的矩形数目(easy)

在这里插入图片描述

解题思路:先遍历一遍记录可形成的最大正方形边长,然后在遍历一遍可以形成最大正方形边长的数目

代码:

package LeetCode.Code2022.February;

public class Solution1725 {
    public int countGoodRectangles(int[][] rectangles) {
        
        int maxLen = 0;
        for (int i = 0; i < rectangles.length; i++) {
            int len = Math.min(rectangles[i][0], rectangles[i][1]);
            if (maxLen < len) {
                maxLen = len;
            }
        }
        int ans = 0;
        for (int i = 0; i < rectangles.length; i++) {
            int len = Math.min(rectangles[i][0], rectangles[i][1]);
            if (len == maxLen) {
                ans++;
            }
        }
        return ans;

    }
}

标签:index,int,1725,list,---,2000,ans,rectangles,public
来源: https://blog.csdn.net/wr456wr/article/details/122769594

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有