Make Sum Divisible by P (LeetCode 1590)

Xem dạng PDF

Gửi bài giải

Điểm: 2,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Độ khó: Trung bình (2/4 điểm)

📖 Bài giải chi tiết: 👉 Bấm vào đây để xem lời giải cụ thể của bài này trên blog

⚠️ Lưu ý: hãy đảm bảo em đã thật sự cố gắng tự làm bài trước, rồi mới bấm vào xem bài giải nhé!

🎓 Khóa học Lập trình Thuật toán thi đấu của thầy Nguyễn Việt Nam Sơn – 111 buổi video, kèm cặp cá nhân, luyện thi chuyên Tin · HSG Tin học · Tin học trẻ · đội tuyển quốc gia · Olympic/ICPC. 👉 Xem chi tiết khóa học · Thành tích học viên

📞 Đăng ký học: Zalo 0767 666 702 · Facebook Nguyễn Việt Nam Sơn · 🌐 laptrinhthuattoan.blogspot.com


1590. Make Sum Divisible by P – Làm cho tổng chia hết cho P (LeetCode, độ khó Medium)

Cho một mảng các số nguyên dương nums, hãy xóa đi đoạn con ngắn nhất (có thể rỗng) sao cho tổng các phần tử còn lại chia hết cho p. Không được phép xóa toàn bộ mảng.

Hãy trả về độ dài của đoạn con ngắn nhất cần xóa, hoặc ~-1~ nếu không thể làm được.

Đoạn con (subarray) là một khối các phần tử liên tiếp trong mảng.

Dữ liệu vào
  • Dòng đầu gồm 2 số nguyên ~n~ (số phần tử) và ~p~.
  • Dòng thứ hai gồm ~n~ số nguyên nums[0], nums[1], ..., nums[n-1].
Kết quả
  • Một số nguyên là đáp án của bài.
Giới hạn
  • ~1 \le n \le 10^5~
  • ~1 \le~ nums[i] ~\le 10^9~
  • ~1 \le p \le 10^9~

Sample Input 1

4 6
3 1 4 2

Sample Output 1

1
Giải thích

Tổng các phần tử là 10, không chia hết cho 6. Ta có thể xóa đoạn con [4], tổng các phần tử còn lại là 6, chia hết cho 6.

Sample Input 2

4 9
6 3 5 2

Sample Output 2

2
Giải thích

Không thể xóa một phần tử duy nhất mà được tổng chia hết cho 9. Cách tốt nhất là xóa đoạn con [5,2], còn lại [6,3] có tổng là 9.

Sample Input 3

3 3
1 2 3

Sample Output 3

0
Giải thích

Tổng là 6, đã chia hết cho 3 rồi nên không cần xóa gì cả.

Sample Input 4

3 7
1 2 3

Sample Output 4

-1
Giải thích

Không có cách xóa đoạn con nào để được tổng chia hết cho 7.

Sample Input 5

3 3
1000000000 1000000000 1000000000

Sample Output 5

0

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.