102 / 205
LeetCode · MediumO'rta20 ball· ~20 daqiqa

Arithmetic Slices

Arifmetik ketma-ketlik (arithmetic sequence) — bu uchta yoki undan ortiq elementdan iborat bo'lib, qo'shni elementlar orasidagi farq doim bir xil bo'ladigan ketma-ketlik.

Sizga nums butun sonlar massivi berilgan. Undagi arifmetik ketma-ketlik bo'ladigan qism-massivlar (subarrays) sonini toping.

example.go
func solve(nums []int) int {
    // ...
}

Misollar

kod
Input: nums = [1,2,3,4]
Output: 3
Tushuntirish: [1,2,3], [2,3,4] va [1,2,3,4] uchta arifmetik ketma-ketlik.
kod
Input: nums = [1]
Output: 0
kod
Input: nums = [1,2,3,8,9,10]
Output: 2

Maslahatlar

  1. Har bir indeksda "aynan shu elementda tugaydigan arifmetik ketma-ketliklar soni" degan holatni saqlab boruvchi dinamik dasturlash (DP) haqida o'ylab ko'ring.
  2. i=2 dan boshlab yuring: agar nums[i]-nums[i-1] == nums[i-1]-nums[i-2] bo'lsa, joriy hisoblagichni 1 ga oshirib uni umumiy javobga qo'shing; shart bajarilmasa hisoblagichni nolga qaytaring.