LeetCode 솔루션 분류

[9/21] 985. Sum of Even Numbers After Queries

컨텐츠 정보

본문

Medium
1784308Add to ListShare

You are given an integer array nums and an array queries where queries[i] = [vali, indexi].

For each query i, first, apply nums[indexi] = nums[indexi] + vali, then print the sum of the even values of nums.

Return an integer array answer where answer[i] is the answer to the ith query.

 

Example 1:

Input: nums = [1,2,3,4], queries = [[1,0],[-3,1],[-4,0],[2,3]]
Output: [8,6,2,4]
Explanation: At the beginning, the array is [1,2,3,4].
After adding 1 to nums[0], the array is [2,2,3,4], and the sum of even values is 2 + 2 + 4 = 8.
After adding -3 to nums[1], the array is [2,-1,3,4], and the sum of even values is 2 + 4 = 6.
After adding -4 to nums[0], the array is [-2,-1,3,4], and the sum of even values is -2 + 4 = 2.
After adding 2 to nums[3], the array is [-2,-1,3,6], and the sum of even values is -2 + 6 = 4.

Example 2:

Input: nums = [1], queries = [[4,0]]
Output: [0]

 

Constraints:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • 1 <= queries.length <= 104
  • -104 <= vali <= 104
  • 0 <= indexi < nums.length
Accepted
121,331
Submissions
178,428
태그

관련자료

댓글 1

학부유학생님의 댓글

  • 익명
  • 작성일
Runtime: 540 ms, faster than 90.84% of Python3 online submissions for Sum of Even Numbers After Queries.
Memory Usage: 20.5 MB, less than 44.27% of Python3 online submissions for Sum of Even Numbers After Queries.
class Solution:
    def sumEvenAfterQueries(self, nums: List[int], queries: List[List[int]]) -> List[int]:
        evensum = sum(num for num in nums if not num%2)
        res = []
        for val, idx in queries:
            new_val = nums[idx] + val
            #odd to even
            if nums[idx]%2 and new_val%2 == 0:
                evensum += new_val
            # even to odd
            elif nums[idx]%2 == 0 and new_val%2:
                evensum -= nums[idx]
            
            # even to even
            elif nums[idx]%2 == 0 and new_val%2 == 0:
                evensum += new_val - nums[idx]
            
            nums[idx] = new_val
            
            res.append(evensum)
            # print(evensum, nums)
        return res
        
LeetCode 솔루션 357 / 11 페이지
번호
제목
이름

최근글


인기글


새댓글


Stats


  • 현재 접속자 744 명
  • 오늘 방문자 5,870 명
  • 어제 방문자 6,932 명
  • 최대 방문자 14,831 명
  • 전체 회원수 1,481 명
알림 0