01/10/2018, 11:30

Có bài tập lập trình m nghĩ mãi không ra mong mọi người giúp đỡ

Cho một mảng a chỉ chứa các số từ 1 tới a.length, hãy tìm số đầu tiên xuất hiện hai
lần trong mảng thỏa mãn: vị trí của số đó ở lần xuất hiện thứ hai là nhỏ nhất.
Tức là, nếu có nhiều số xuất hiện hai lần trong mảng, thì trả về số thỏa mãn vị trí xuất
hiện lần thứ hai của nó nhỏ hơn vị trí xuất hiện lần thứ hai của mọi số khác. Nếu không
có số nào như vậy, trả về số −1

Trần Hoàn viết 13:36 ngày 01/10/2018

Bài test phỏng vấn trên codefight à?

Trần Tiến Dũng viết 13:36 ngày 01/10/2018

k bọn mình làm bài nhóm trên này nghĩ mãi k ra bạn à giúp mình vs

Trần Hoàn viết 13:46 ngày 01/10/2018

Bài này hồi ấy mình đọc phát nghĩ ra luôn, dùng List<int>, nhưng mà đến tầm test 14 thì phải, không qua được do quá thời gian, sau nghĩ thêm cách này thì pass.

Trần Tiến Dũng viết 13:37 ngày 01/10/2018

bạn giải thích cho mình vs mình đọc chưa hiểu lắm thank bạn mong đc giúp đỡ mình mới học lập trình

Trần Hoàn viết 13:38 ngày 01/10/2018

Bài này khó, nên mình nghĩ là nói luôn, gợi ý lằng nhằng lắm.

  • Input là a
  • b là một mảng gồm các số từ 1 đến a.length, b[i] == i + 1
  • cho vòng for chạy từ đầu đến cuối mảng a
  • Nếu b[a[i] - 1] != 0 thì b[a[i] - 1] = 0, tức là đánh dấu rằng số b[a[i] - 1] này đã xuất hiện 1 lần
  • Nếu b[a[i] - 1] == 0 tức là số này đã xuất hiện 1 lần rồi, lần này là lần thứ 2, return luôn số đó
  • Nếu không có số nào xuất hiện 2 lần thì vòng for sẽ chạy hết được, lúc này return -1
Trần Tiến Dũng viết 13:34 ngày 01/10/2018

code của bạn là C# à bạn có thể code bằng c đc k

Trần Tiến Dũng viết 13:39 ngày 01/10/2018

Ban đã làm đc nhiều bài tập trên đấy chưa ạ cho mình tham khảo các bài bạn làm mới thực sự mình còn kém

Trần Hoàn viết 13:40 ngày 01/10/2018

Mình không học C nên cũng chịu luôn, viết đại ra đây mong là nó đúng

int firstDuplicate(int[] a, int n)
{
    int* b = (int*)malloc(n*sizeof(int));
    int i;
    for (i = 0; i < n; i += 1)
        b[i] = i + 1;
    for (i = 0; i < n; i += 1)
        if (b[a[i] - 1] == 0)
            return a[i];
        else
            b[a[i] - 1] = 0;
    return -1;
}
明玉 viết 13:35 ngày 01/10/2018

Xin lỗi do mình comment lạc đề , mình hỏi klq tí thôi: màn hình của bạn đang hiển thị trình nghe nhạc nào trông chất ngầu vậy

Trần Tiến Dũng viết 13:30 ngày 01/10/2018

cái bài ở trên của bạn viết bằng C# k chạy được bạn à

Trần Hoàn viết 13:30 ngày 01/10/2018

cái bài ở trên của bạn viết bằng C# k chạy được bạn à

Chắc là bạn gõ nhầm thôi

trình nghe nhạc nào

À, mình dùng Windows Media Player
Cái spectrum là skin của Rainmeter
Lyric thì MiniLyrics

Trần Tiến Dũng viết 13:45 ngày 01/10/2018

Bạn qua mấy màn trên codefight r vậy

Trần Hoàn viết 13:39 ngày 01/10/2018

À, đợt thực tập tốt nghiệp, mình chán chán nên làm chơi cho vui ý mà, chủ yếu là arcade. Đến bàn khó quá, nghĩ không ra hướng, chán quá bỏ

Cái này làm cho vui thôi, không có nhiều ích lợi lắm đâu, giết thời gian là chính. Nếu bận học thì đừng làm nhiều.

Trần Tiến Dũng viết 13:38 ngày 01/10/2018

chỗ interview bạn qua bao nhiêu màn r

Trần Hoàn viết 13:36 ngày 01/10/2018

Đến hết linked list. đoạn hash table thì chả hiểu đề nó hỏi gì, tại dốt tiếng Anh Sau đó bỏ không làm nữa

Trần Tiến Dũng viết 13:40 ngày 01/10/2018

khó nhỉ vậy bạn còn giữ mấy cái bạn qua màn k

Trần Hoàn viết 13:40 ngày 01/10/2018

Giữ thì giữ, nhưng nếu bạn không tự qua màn được thì không xem được đâu, trừ khi mình chụp màn hình lại. Cứ từ từ mà luyện, đừng xem đáp án vội không nghĩ được đâu =]]

Trần Tiến Dũng viết 13:33 ngày 01/10/2018

bạn cho mình tham khảo vì mấy bài mình chỉ qua đc mấy test

Trần Hoàn viết 13:30 ngày 01/10/2018

Cái này bạn gắng tự nghĩ. Muốn tham khảo code của người khác thì bỏ coin ra xem cũng được mà

Trần Tiến Dũng viết 13:46 ngày 01/10/2018

ừ ok bạn vậy mình tự nghĩ vậy

Bài liên quan
0