LeetCode刷题记录(一)

这篇博客记录了作者在LeetCode上刷题的过程,包括寻找数组中心索引、找到至少是其他数字两倍的最大数和数组加一问题的解题思路。作者强调了多次实践和优化算法的重要性,并分享了针对这三个问题的Java实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LeetCode刷题记录(一)

最近开始在LeetCode上面做题,想想应该做一个记录,以便以后看到类似的问题及时查阅,同时也能够将做题时的思路记录下来,将这些思路整理归纳,形成一套我自己的解题思路。当然,算法题只做一次是不够的,需要多次的练习,可能每次的想法都不太一样,在这里我只将当时做题的想法记录下来,不一定是这道题目的最优解,以后发现更好的解法的时候我也会及时更新。因为是刚开始做题,所以除了题目特殊要求之外,我暂时还未完全考虑优化算法的时间和空间复杂度,后续再做的时候就需要考虑这方面的问题了。

我没有按照题目的顺序往下面做,而是先挑选卡片进行专项练习的,最近我做的是数组和字符串卡片下面的题目,也是相对较为简单的内容。

1、寻找数组的中心索引

题目:

这里写图片描述

我的思路:

  1. 首先需要计算数组所有元素的和sum;
  2. 然后遍历数组每个元素,计算剔除当前元素后数组所有元素的和tmp;
  3. 计算当前元素左侧所有元素的和;
  4. 如果左侧元素的和*2等于tmp,说明当前元素左右两侧的和相同,当前元素的索引即是答案

按照这个思路实现的代码如下:

class Solution {
    
    
    public int pivotIndex(int[] nums) {
    
    
        if(nums.length == 0) {
    
    
        	return -1;
        }
    	
        //1、计算数组所有元素的和
    	int sum = 0;
        for(int num : nums) {
    
    
        	sum += num;
        }
        
        int index = -1;
        //2、遍历数组
        for(int i = 0; i < nums.length; i++) {
    
    
            //3、计算剔除当前元素后数组所有元素的和tmp
        	int tmp = sum - nums[i];
            //4、计算当前元素左侧所有元素的和
        	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值