Đã tối ưu hóa một thuật toán và đi xuống phần cuối cùng. Tôi có một mảng các số nguyên như thế này:Cách nhanh nhất để tìm phạm vi tổng tối đa trong int []
[1, 1, 2, 5, 0, 5, 3, 1, 1]
yêu cầu của tôi là như sau:
- đầu vào: số lượng số nguyên để tổng hợp trên
- tổng max nên bao gồm các số nguyên cạnh nhau
- nếu một số nguyên có giá trị 0 tổng trong phạm vi này sẽ bị vô hiệu
- tổng tối đa của các số nguyên và chỉ số của mỗi số nguyên được trả về
kết quả dự kiến:
đầu vào Với 2 (2 muốn) với mảng như đã đề cập nên do trở [8, [ 5, 6]] trong đó 8 là tổng số nguyên tại chỉ số 5 và 6
Cho đầu vào của 3 (3 muốn) với mảng như đã đề cập nên trả lại [9, [5, 6, 7]] trong đó 9 là tổng của các số nguyên tại chỉ số 5, 6 và 7 (lưu ý rằng mặc dù các số nguyên tại các chỉ mục 3, 4, 5 có tổng t cao hơn kết quả là không hợp lệ do chỉ số 4 là 0)
Tôi hiện đang quản lý điều này bằng cách thực hiện nhiều vòng lặp, nhưng tự hỏi liệu có ai đó có cách nào tốt hơn để đạt được điều này hay không. Ngôn ngữ lập trình lựa chọn của tôi hiện là C# - Tôi sẽ đánh giá cao nếu các câu trả lời có thể có trong C#. Bất kỳ việc sử dụng LINQ và các tính năng Math ưa thích khác đều miễn là nó là cách nhanh nhất.
là bài tập về nhà này? –
Xin lỗi, tôi đã đăng câu trả lời. Ít nhất thì nó không có trong C#. –
Không, nó chắc chắn không phải là bài tập về nhà ... Tôi ước nó là –