LeetCode——新手村

简介: LeetCode——新手村

前言

注册了一个LeetCode的新号,想写题目,发现了一个LeetCode新手村。之前的号都没有碰到过,这次既然碰到了,那么就开写吧!😎(虽然题目都很简单,但是有新手村奖励啊🤪)25479476cd0343858af8ed084899d55a.png

一、一维数组的动态和

1480. 一维数组的动态和 - 力扣(Leetcode)


1、题目

给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])

请返回 nums 的动态和。

示例 1:

输入:nums = [1,2,3,4]

输出:[1,3,6,10]

解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。

示例 2:

输入:nums = [1,1,1,1,1]

输出:[1,2,3,4,5]

解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。

示例 3:

输入:nums = [3,1,2,10,1]

输出:[3,4,6,16,17]

2、代码

简单的前缀和计算

class Solution {
    public int[] runningSum(int[] nums) {
        int[] sum = new int[nums.length];
        sum[0] = nums[0];
        for (int i = 1; i < nums.length; i++) {
            sum[i] += nums[i] + sum[i - 1];
        }
        return sum;
    }
}

二、将数字变成 0 的操作次数

1342. 将数字变成 0 的操作次数 - 力扣(Leetcode)


1、题目

给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。

示例 1:

输入:num = 14

输出:6

解释:

步骤 1) 14 是偶数,除以 2 得到 7 。

步骤 2) 7 是奇数,减 1 得到 6 。

步骤 3) 6 是偶数,除以 2 得到 3 。

步骤 4) 3 是奇数,减 1 得到 2 。

步骤 5) 2 是偶数,除以 2 得到 1 。

步骤 6) 1 是奇数,减 1 得到 0 。


示例 2:

输入:num = 8

输出:4

解释:

步骤 1) 8 是偶数,除以 2 得到 4 。

步骤 2) 4 是偶数,除以 2 得到 2 。

步骤 3) 2 是偶数,除以 2 得到 1 。

步骤 4) 1 是奇数,减 1 得到 0 。

示例 3:

输入:num = 123

输出:12

2、代码

判断奇偶数

class Solution {
    public int numberOfSteps(int num) {
  int i=0;
        while (num!=0){
            if (num%2==0)
                num/=2;
            else
                num-=1;
            i++;
        }
        return i;
    }
}

三、最富有客户的资产总量

1672. 最富有客户的资产总量 - 力扣(Leetcode)


1、题目

给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量

客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。

示例 1:

输入:accounts = [[1,2,3],[3,2,1]]

输出:6

解释:

第 1 位客户的资产总量 = 1 + 2 + 3 = 6

第 2 位客户的资产总量 = 3 + 2 + 1 = 6

两位客户都是最富有的,资产总量都是 6 ,所以返回 6 。

示例 2:

输入:accounts = [[1,5],[7,3],[3,5]]

输出:10

解释:

第 1 位客户的资产总量= 6

第 2 位客户的资产总量= 10

第 3 位客户的资产总量 = 8

第 2 位客户是最富有的,资产总量是 10

示例 3:

输入:accounts = [[2,8,7],[7,1,3],[1,9,5]]

输出:17

2、代码

数组求和

class Solution {
    public int maximumWealth(int[][] accounts) {
   int Max=0;
        for (int i=0;i<accounts.length;i++){
            int sum=0;
            for (int j=0;j<accounts[i].length;j++){
                sum+=accounts[i][j];
            }
            Max=Math.max(Max,sum);
        }
            return Max;
    }
}

四、Fizz Buzz

412. Fizz Buzz - 力扣(Leetcode)


1、题目

给你一个整数 n ,找出从 1n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:


answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。

answer[i] == "Fizz" 如果 i 是 3 的倍数。

answer[i] == "Buzz" 如果 i 是 5 的倍数。

  • answer[i] == i (以字符串形式)如果上述条件全不满足。

示例 1:

输入:n = 3

输出:["1","2","Fizz"]

示例 2:

输入:n = 5

输出:["1","2","Fizz","4","Buzz"]

示例 3:

输入:n = 15

输出:

["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]

2、代码

List与字符串的简单使用

class Solution {
    public List<String> fizzBuzz(int n) {
        List<String> ans = new ArrayList<>();
        for (int i = 1; i <= n; i++) {
            String cur = "";
            if (i % 3 == 0) 
                cur += "Fizz";
            if (i % 5 == 0) 
                cur += "Buzz";
            if (cur.length() == 0) 
                cur = i + "";
            ans.add(cur);
        }
        return ans;
    }
}

五、链表的中间结点

876. 链表的中间结点 - 力扣(Leetcode)

1、题目

给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

示例 1:


f98adb0f57194ce9b9ba675a12cefde2.png

输入:head = [1,2,3,4,5]

输出:[3,4,5]

解释:链表只有一个中间结点,值为 3 。


示例 2:d3cb9044a0c742629a6e688e36ef1cb8.png


输入:head = [1,2,3,4,5,6]

输出:[4,5,6]

解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。

2、代码

快慢指针,快指针每次走两步,慢指针每次走一步。


0761d810150148f0b9fd48925e9fb3cf.png


69ccbc5e9ee74cdd9cbc88b07e326581.png

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode middleNode(ListNode head) {
 ListNode fast=head;
        while (fast.next!=null&&fast.next.next!=null){
            head=head.next;
            fast=fast.next.next;
        }
        if (fast.next==null)
            return head;
        return head.next;
    }
}

六、赎金信

383. 赎金信 - 力扣(Leetcode)


1、题目

给你两个字符串:ransomNotemagazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false

magazine 中的每个字符只能在 ransomNote 中使用一次。

示例 1:

输入:ransomNote = "a", magazine = "b"

输出:false


示例 2:

输入:ransomNote = "aa", magazine = "ab"

输出:false


示例 3:

输入:ransomNote = "aa", magazine = "aab"

输出:true

2、代码

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
         StringBuilder r=new StringBuilder(ransomNote);
        StringBuilder m=new StringBuilder(magazine);
        for (int i=0;i<r.length();i++){
            int index=m.indexOf(String.valueOf(r.charAt(i)));
            if (index==-1)
                return false;
            m=m.deleteCharAt(index);
        }
        return true;
    }
}



1953f2da6af548e38b2fccd317feb7e4.gif

目录
相关文章
|
Cloud Native 安全 Java
go和java的比较
go和java的比较
|
12月前
什么是多态?面向对象中对多态的理解
本文介绍了面向对象编程中的多态概念,包括其定义、优点以及编译时多态和运行时多态的具体实现方式。通过实例展示了函数重载、运算符重载、虚函数、接口和抽象类的应用,帮助读者深入理解多态的灵活性和可扩展性。
768 7
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的水果商城附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的水果商城附带文章和源代码部署视频讲解等
326 10
|
存储 机器学习/深度学习 人工智能
深入浅出 AI 智能体(AI Agent)|技术干货
随着人工智能技术的发展,智能体(AI Agents)逐渐成为人与大模型交互的主要方式。智能体能执行任务、解决问题,并提供个性化服务。其关键组成部分包括规划、记忆和工具使用,使交互更加高效、自然。智能体的应用涵盖专业领域问答、资讯整理、角色扮演等场景,极大地提升了用户体验与工作效率。借助智能体开发平台,用户可以轻松打造定制化AI应用,推动AI技术在各领域的广泛应用与深度融合。
26308 1
|
存储 关系型数据库 MySQL
手把手教你使用Django如何连接Mysql
手把手教你使用Django如何连接Mysql
1825 0
|
传感器 算法 Linux
查看 PCD 点云 windows
在Linux系统查看PCD 点云有许多方法,但发现在windows下的工具比较少,这里分享两个思路,一个是使用MATLAB工具编程,另一个是下载CloudCompare软件进行查看点云。
11998 0
查看 PCD 点云 windows
|
存储 Java 关系型数据库
(透彻)java String.getBytes()编码问题
String.getBytes()的问题String 的getBytes()方法是得到一个字串的字节数组,这是众所周知的。但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数组。
2008 0
|
JSON Java API
Gson-更新中
Gson-更新中
348 0
|
存储 Java 定位技术
GIS开发:mbtiles数据合并
GIS开发:mbtiles数据合并
650 0

热门文章

最新文章