Trang chủ Lập trình Javascript - HTML Bài toán tìm số cô đơn trong mảng

Bài toán tìm số cô đơn trong mảng

Trên trang Code Fights (tôi đã giới thiệu về trang web này ở bài viết: Thử tài tìm lỗi của mã lập trình với Code Fights) có mục Challenge (tạm dịch là Thách thức). Ở đây người ta sẽ đưa ra một bài toán yêu cầu người tham gia giải quyết và bài giải tối ưu là bài giải có lời giải… ngắn nhất.

Hôm rồi có yêu cầu như thế này.

Bài toán tìm số cô đơn

Tạm dịch là: Cho một mảng các số chứa một số không được lặp và nhiệm vụ người tham gia là viết mã để tìm ra số đó.

Tôi bắt đầu hiểu là có thể chuỗi chứa nhiều giá trị không lặp nên code xuất ra mảng chứa các phần tử đó. Máy không chịu vậy là hiểu nó chỉ lấy một giá trị và tôi viết đoạn mã này và vượt qua được tất cả các bộ test.

Thật ra lúc đầu tôi không để ý lắm đến tiêu chí đánh giá (lời giải càng ngắn càng tốt) nên viết cố gắng càng tường minh càng tốt nhưng sau này mới nhận ra tiêu chí nên bắt đầu sửa. Một số mẹo vặt để tối ưu lời giải cho bài toán này:

  • Người ra đề chỉ yêu cầu mảng chứ 1 số thỏa điều kiện đó nên gặp là trả về luôn khỏi kiểm tra tiếp.
  • Thay vì đặt biến tên dài lằng ngoằng để tường minh thì có thể đặc là: a, b, c… cho ngắn.
  • Giá trị nào lặp nhiều lần mà số ký tự dài thì nên gán là: a, b, c… cho rút ngắn ký tự khi gọi lại.
  • Loại bỏ hết các dấu mở ngoặc nhọn, đóng ngoặc nhọn ({}), chấm phảy (;) nếu có thể.

Ấy vậy mà vẫn không rút ngắn được bao nhiêu và đây là bài giải của người mà mình phải gọi là thánh. Một dòng duy nhất. Quá kinh!

Chia sẻ với các bạn cho vui. Các bạn học CNTT mới nhập môn lập trình thì có thể tham khảo thuật toán.

Thật ra khi kết thúc cuộc thi với bài toán này mình xem ra thì thấy có nhiều đoạn mã viết rất hay nếu xét về độ tối ưu thì mình thấy OK nhưng ngặt nổi ở đây tối ưu là lời giải ngắn nên đành chịu thôi ^^!

PS: Ở đây mình viết bằng Javascript.

Huỳnh Mai Anh Kiệt

Huỳnh Mai Anh Kiệthttps://www.mangbinhdinh.vn
Anh là một người đam mê công nghệ. Hiện tại anh là một lập trình viên tại Quy Nhơn.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

- Advertisment -
Shopify

BÀI VIẾT MỚI

Facebook chi 400 triệu đô để mua lại Giphy

Giphy là một nền tảng trực tuyến hỗ trợ lưu trữ và tìm kiếm ảnh động (GIF) trực tuyến của Mỹ. Và mới đây...

reCAPTCHA rất hữu ích trong số hoá dữ liệu

Sách được xem là những kho tàng tri thức của nhân loại, tuy nhiên việc lưu trữ sách là cả một vấn đề to...

The Pirate Bay đã trở lại bằng tên miền ban đầu

Sau khi The Pirate Bay bị "chết" đội ngũ đã gửi tất cả lưu lượng truy cập đến "lỗ đen" (Local Black Hole 127.0.0.1.)và...

Dân Anh đốt cột phát sóng 5G vì nghi phát tán virus Corona

Ít nhất ba cột phát sóng 5G vừa bị đốt cháy vì có người tin rằng nó là nguồn phát tán virus corona. Theo BBC,...

Kiểm tra trình duyệt của khách có phải là Safari bằng PHP

Hôm rồi chợt nhận ra điều là Safari của Apple chưa hỗ trợ hiển thị ảnh WebP. Vậy là cái plugin Hura Apps Photos...

BẠN XEM CHƯA

DPC Latency Checker kiểm tra khả năng xử lý của hệ thống

DPC Latency Checker là phần mềm tiện ích giúp bạn phân tích, đánh giá khả năng làm việc của hệ thống khi xử lý...

7 ngôn ngữ lập trình và framework nên học trong năm 2020

Việc lựa chọn những ngôn ngữ lập trình và framework cho ứng dụng của bạn không chỉ tác động tới tốc độ và thời...

Tài khoản bị hack và cái kết không ngờ

Khoảng 12h đêm tối thứ 6 vừa rồi tự nhiên email nhận được email thông báo đặt hàng thành công trên trang giao dịch...

Pornhub tặng tài khoản premium cho người dùng Italia để… chống dịch Covid-19

Để ủng hộ Italia trong công cuộc chiến đấu với đại dịch Covid-19, Pornhub đã quyết định tặng miễn phí dịch vụ premium của...

Thêm hình ảnh vào hiển thị theo ListView với C#

Nếu bạn muốn thêm hình ảnh và hiển thị theo ListView trong C# thì bài viết này sẽ hướng dẫn bạn làm điều đó....