Here I am again! Sau một khoảng thời gian rất lâu thì chuyên mục này đã quay trở lại. 🙁 . Từ giờ tôi sẽ cố gắng viết bài chăm chỉ hơn 😀 Và, hôm nay chúng ta sẽ đến với một bài toán trên Hacke… Leetcode … LOL Bài toán : Running Sum of 1d Array Level: EasyTóm tắt bài toán : tỉnh tổng liên tiếp các phần tử theo thứ tự.Hãy thử giải trước khi xem Solution của …
Author: Conal Dev
Java core là một kiến thức vô cùng quan trọng đối với các Java Developer vì nó là thứ cốt lõi, căn bản nhất để từ đó ta có thể đi theo các hướng sử dụng java dễ dàng, thuận lợi và nhanh chóng hơn. Java Core là phần kiến thức được học trong module 2 của khóa java ở Codegym. Vì học khá nhanh nên có thể có nhiều phần chúng ta còn chưa nắm rõ cũng là chuyện …
Tuần trước mình hơi lười chút nên ko viết series tuần vừa rồi. Do vậy tuần này ta sẽ tiếp tục với chủ đề mỗi tuần một bài toán Hacke… LeetCode. Làm Hackerank nhiều hơi bức bối một chút nay đổi gió qua LeetCode giải trí chút. ( Nếu ai chưa biết thì LeetCode cũng là một trang web nổi tiếng để luyện code, CTDL, algorithms,… nổi tiếng như Hackerank. Đặc biệt về phần thi và cộng đồng tôi thấy …
Bài toán : PairsLevel : Medium Nhận xét : Một bài toán Medium Level nhưng tôi lại thấy bài này quá dễ. Dễ đến mức dễ hơn cả easy level. Đây là bài toán mà có lẽ bạn chỉ cần đọc phát là làm được luôn nên hay thử tự nghĩ trước khi tham khảo solution của tôi nhé . Tóm tắt bài toán : cho một mảng array gồm các phần tử ngẫu nhiên dộc nhất trong khoảng điều …
Nếu bạn là một Java programmer thì hẳn là bạn cũng đã tiếp xúc nhiều với Scanner và BufferedReader dùng để nhập input đầu vào xử lí. Vậy sự khác biệt giữa Scanner và BufferedReader là gì ?Class Scanner có thể đọc được các kiểu nguyên thủy và string khác nhau. Dễ thấy qua các method nextInt(), nextFloat(), nextDouble(), . . .Class BufferedReader đọc text qua InputStreamReader chỉ đọc được text (String) nên hiệu quả hơn trong việc đọc text …
Bài toán : Big SortingLevel : Easy Nhận xét : Một bài toán easy level nhưng tôi thấy thực sự hay. Vì từ bài này tôi đã có thể thiết lập được cách để sắp xếp mảng các số rất lớn.Tóm tắt bài toán : cho một mảng các chuỗi số có thể chứa các số rất lớn chưa được sắp xếp. Việc của chúng ta đơn giản là sắp xếp lại chuỗi sắp xếp tăng dần. Solution: Nói là …
Bài toán : Strong PasswordLevel: EasyTuần trước quên chưa đăng bài nên tuần này tôi sẽ đăng bù 2 thêm bài toán trong tuần này :D.Tóm tắt bài toán : Đề bài yêu cầu chúng ta xác nhận xem chuỗi ký tự user nhập vào có phải là Strong Password hay không ? Nếu không thì phải thêm ít nhất (minumum) bao nhiêu kí tự để nó thành strong password ?Với điều kiện : Its length is at least 6 It …
Đắm mình vào sự kì diệu của các thuật toán sắp xếp, tôi mới biết con người thật đáng nể khi sáng tạo ra rất nhiều các loại thuật toán sắp xếp hay ho, thú vị, hiệu quả và đầy hack não. Các thuật toán như Selection Sort, Quick Sort, Bubble Sort, Insertion Sort, Merge Sort,etc đã quá quen thuộc với dân lập trình chúng ta. Nhiều khi chúng ta tự hỏi thuật toán sắp xếp nào nhanh nhất trong …
Nếu đã từng dấn thân vào code thì mấy cái như lỗi tràn số chắc đã không còn quá xa lạ với dân coder như chúng ta. Thực ra nói là quen thuộc nhưng lỗi tràn số ứng dụng trong thực tế tôi lại chưa gặp bao giờ vì tôi cũng chưa động chạm đến dự án thực tế gây ra lỗi trần số. 😀Nhưng tôi đã gặp khá nhiều các bài toán giải thuật liên quan đến tràn số. …
Bài toán: Missing NumbersMức độ : Easy Đây là tôi khi vừa giải được một bài toán super -Easy, Basic và nghĩ mình đã trở thành 1 lập trình viên pro, 1 hacker hack cả thế giới. Hình ảnh chỉ mang tính chất tấu hài (for fun) Quay lại chủ đề chính bài post này. Như tên bài toán đã nói ra mục đích problem cho mình tìm những số bị thiếu. Làm Hackerrank được một thời gian tôi rút …
Đầu tiên ta cần hiểu tham trị và tham chiếu là gì ? – Tham trị tức là truyền giá trị– Tham chiếu tức là chiếu đến 1 địa chỉ Tham trị (passed by value) trong Java – Kiểu này dành cho các biến, các tham số khai báo kiểu dữ liệu cơ bản nguyên thủy gồm : byte, short, int, long, float, double, char.– Nếu chúng ta gọi một phương thức và truyền một giá trị cho phương thức …
Heap Memory và Stack Memory những khái niêm cơ bản trong Java nhưng nó là kiến thức quan trọng cần nắm vững để có thể sử dụng Java một cách tốt hơn 😀 Heap Memory và Stack Memory đều là bộ nhớ được JVM dùng khi runtime. Java Heap Memory: – Là bộ nhớ được sử dụng bất cứ khi nào ở đâu trong chương trình của bạn khi tạo object nó sẽ được lưu trong Heap– Các object trong …
Đầu tiên ta cần nói static thuộc về lớp chứ không phải chứ không thuộc về instance(thể hiện ) của lớp.Trong Java, static có thể là : + Biến static+ Phương thức static+ Khối static+ Lớp static Biến static: – Còn được gọi là biến tĩnh, dùng để tham chiếu thuộc tính chung của tất cả đối tượng– Biến Static lấy bộ nhớ chỉ một lần trong Class Area tại thời điểm tải lớp đó tức là khi ta thay …
Bài toán : Forming a Magic SquareMức độ: Medium Link: https://www.hackerrank.com/challenges/magic-square-forming/problemTóm tắt bài toán : Tìm minCost để chuyển 1 ma trận input thành 1 Magic Square với size 3×3 có tổng tất cả các hàng, cột,chéo đều bằng 15 với các số từ 1-9.Solution: Quá trình đến lời giải: Sau khi đọc lướt qua đề, tôi cũng hiểu được yêu cầu bài toán là gì. Ngồi ngẫm bài toán được 5 phút thấy bế tắc với cách so sánh …
Sau 1 thời gian ngắn sử dụng Java để làm bài tập. Tôi nhận thấy vài điều sau:+ Cú pháp quá dài thật sự + Định kiểu rõ ràng (tuyệt vời cuối cùng sau 1 thời gian dùng js tôi cũng đã quay về với chân lý ) 😀+Thuần đối tượng : toàn thấy khai báo và sử dụng class. object, constructor và method. Thành phần nào cũng nằm trong class+ Logic chặt chẽ +Chạy đa nền tảng dùng JVM …
Vào một ngày không đẹp trời, nắng nóng gay gắt, thời tiết oi bức khó chịu. Tôi bâng quơ lướt Internet rồi đọc thấy 1 bài toán reverse number. Ừm, nếu chỉ là thế thì cũng chả có gì đặc biệt cứ Number %10 lưu rồi chia 10 với điều kiện >0 nói chung làm quá quen rồi Nhưng đợi 1 chút…. Trong javascript không định kiểu thì làm thế quái nào để dừng được điều kiện chạy vòng lặp …
Bài toán : Designer PDF ViewerLink: https://www.hackerrank.com/challenges/designer-pdf-viewer/problemMức độ : EasyTóm tắt bài toán: Tính size của highlighted wordSolution:Idea: Dễ thấy weight = số chữ của stringCòn lại phải tìm maxHeight của từng Char. Tôi thấy input đầu vào cho 1 mảng h dãy các số đại diện cho độ cao của từng Char từ a-z theo bảng mã ascii. Vấn đề bây giờ ta phải chuyển sao cho từng Char trong String đó tương ứng với index trong mảng h. …
Đầu tiên ta cần nói JavaScript là một ngôn ngữ prototype-based không có khái niệm class như các ngôn ngữ class-based khác như java. Prototype là cơ chế mà các object trong javascript kế thừa các tính năng từ một object khác. Tất cả các object trong js đều có một prototype, và các object này kế thừa các property và method từ prototype của mình. Bản thân prototype cũng là 1 object. Cái này khác với thuộc tính prototype …
Hôm nay vừa kết thúc module 1. Thời gian trôi thật nhanh, nhanh đến mức mà tôi không thể nhận ra sự vội vã của nó. Mới hôm nào tôi còn bỡ ngỡ đén codegym lạ lẫm. Vậy mà vèo một cái 5 tuần đã trôi qua, module 1 kết thúc, hoàn thành case study, làm bài thi, phỏng vấn. Tuy là lần đầu làm nhưng thứ này nhưng thực sự tôi cảm thấy thực sự thú vị. Đúng là …
Bài toán: Between Two SetsSource: https://www.hackerrank.com/challenges/between-two-sets/problemMức độ : EasyTóm tắt bài toán : Cho 2 mảng số nguyên với điều kiện cho trước. Tìm dãy các số giữa hai mảng sao cho nó là số chia hết cho tất cả phần tử của mảng thứ nhất và các phần tử mảng thứ 2 chia hết cho số đó.Solution:Idea: Từ bài toán => Các số cần tìm phải là bội số chung của mảng thứ nhất và ước số chung của …
Với một người đã dùng C/C++ từ trước với cú pháp ngắn gọn,chặt chẽ hơn javascript. Tôi phải nói thật javascrit quả là lằng nhằng, thiếu chặt chẽ. Khi dùng javascript đến phần mảng tôi chợt nghĩ mảng 2 chiều trong javascipt thì dùng như thế nào ? Sau khi ngồi lần mò trên google tôi cũng tham khảo được một số cách để khởi tạo mảng 2 chiều nhưng quả thật là quá lằng nhằng so với các ngôn …
Trên codegym thường xuất hiện một số bài tập với tiêu đề là thực hành. Phần bài tập này có kiểu mẫu chung là đưa ra một bài toán và có sẵn code lời giải cho bài toán đó. Việc của chúng ta rất chi là đơn giản, nhẹ nhàng và thoải mái. Đó là copy đoạn code đó vào IDE và push lên github rồi dán đường link vào phần submit. Easy, dễ hơn ăn kẹo. Nếu chỉ làm …
Một tuần học tập nữa ở codegym vừa trôi qua, một tuần học tập chưa thực sự hiệu quả và còn nhiều sự lười biếng. Nhưng tôi có thể vui vẻ rằng mình đã tiến bộ thêm một chút so với trước đây không chỉ là về kiến thức lập trình mà là cả về các thứ tôi dường như không để tâm nhưng đó là những thứ thực sự quan trọng, ý nghĩa, cần thiết. Sau khi tham gia …
Hè thật rồi, Có lẽ do chìm trong bộn bề suy nghĩ hoặc có lẽ là do quá vô tâm với thời tiết mà tôi đã không nhận ra một điều hiển nhiên là đã là hè thật sự rồi. Hôm nay là một ngày nắng nóng oi bức như mọi hôm. Như thường lệ buổi sáng tôi rảo bước trên con đường mới lạ hôm nào nay đã trở nên quen thuộc để đến codegym học tập. Buổi sáng …