Back home

SENI #012

SENI #012

SENI adalah kegiatan yang diprakarsai oleh 由左耳朵耗子--陈皓: Kerjakan setidaknya satu pertanyaan algoritma leetcode setiap minggu, baca dan komentari setidaknya satu artikel teknis berbahasa Inggris, pelajari setidaknya satu keterampilan teknis, dan bagikan artikel yang berisi opini dan pemikiran. (Artinya, Algoritma, Review, Tip, dan Share disebut sebagai SENI) dan bertahan setidaknya selama satu tahun.

SENI 012

Ini adalah pasal 12

Pertanyaan algoritma algoritma

pertanyaan algoritma leetcode 241. Atur Ulang String: Kesulitan: Sedang

442. Temukan Semua Duplikat dalam Array

Kesulitan: Sedang

Diberikan array bilangan bulat, 1 ≤ a[i] ≤ n ( n = ukuran array), beberapa elemen muncul dua kali dan elemen lainnya muncul sekali.

Temukan semua elemen yang muncul dua kali dalam larik ini.

Bisakah Anda melakukannya tanpa ruang ekstra dan dalam runtime O(n)?

Contoh:

**Input:**
[4,3,2,7,8,2,3,1]

**Output:**
[2,3]

Solusi

Bahasa: C

/**
 * Return an array of size *returnSize.
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* findDuplicates(int* nums, int numsSize, int* returnSize) {
    
}

Idenya adalah menghitung berapa kali suatu angka muncul. Implementasi saya adalah sebagai berikut. Kompleksitas waktunya adalah O(n); pertanyaannya tidak memerlukan ruang tambahan. Memori yang diterapkan di sini digunakan untuk menyimpan hasilnya. Saya tidak tahu apakah kompleksitas ruang dianggap sebagai pelanggaran.


int* findDuplicates(int* nums, int numsSize, int* returnSize) {
    int *charCount = (int*)malloc(sizeof(int) * (numsSize+1));
    memset(charCount, 0, sizeof(int) * (numsSize+1));
    for (int i = 0; i < numsSize; i++) {
        int data = nums[i] ;
        charCount[data]++;
    }

    * returnSize = 0;
    for (int i =0; i < numsSize +1; i++) {
        int data = charCount[i] ;
        if (data > 1) {
            charCount[(*returnSize)++] =i;
        }
    }

    return charCount;
}


Saya menemukan jawaban cerdas di area diskusi, sebagai berikut, misalnya jika input nums adalah [2,3,2], pertama kali num=abs(nums[0]); Nilai bilangan adalah 2, dan nilai bilangan yang sesuai dengan 2-1 adalah 3, kemudian ditambahkan tanda negatif. Saat ini, angkanya adalah [2,-3,2]. Ketika angka=abs(angka[2); digunakan untuk ketiga kalinya, nilai num adalah 2, dan nilai num yang sesuai dengan -1 adalah -3, menunjukkan bahwa subskrip yang sesuai telah muncul.

int* findDuplicates(int* nums, int numsSize, int* returnSize) {
    if(nums==NULL||numsSize<2)
    {
        *returnSize=0;
        return NULL;
    }
    *returnSize=0;
    int *result=(int *)malloc(sizeof(int)*(numsSize/2));
    for(int i=0;i<numsSize;i++)
    {
        int num=abs(nums[i]);
        if(nums[num-1]>0)
            nums[num-1]=-nums[num-1];
        else
            result[(*returnSize)++]=num;
    }
    return result;
}

Ulasan

Artikel ini berasal dari https://medium.freecodecamp.org/how-to-think-like-a-programmer-lessons-in-problem-solving-d1d8bf1de7d2

Artikel ini berfokus pada bagaimana programmer harus memecahkan masalah: Cara programmer baru mengatasi bug adalah dengan mencobanya berulang kali, yang sangat tidak efisien (Cara programmer baru menyelesaikan bug adalah dengan mencobanya berulang kali, yang sangat tidak efisien). Pendekatan yang tepat adalah dengan menetapkan pendekatan umum Anda sendiri terhadap masalah tersebut, termasuk langkah-langkah berikut: 1 Hal pertama yang harus dilakukan adalah mencari tahu masalahnya dan benar-benar memahaminya. 2. Daripada terburu-buru menyelesaikan suatu masalah, luangkan waktu untuk menganalisa dan memikirkannya serta membuat rencana. 3. Uraikan masalahnya. Pecahkan masalah besar menjadi masalah-masalah kecil. 4. Saat menghadapi masalah kecil yang sulit diselesaikan, jangan dulu tidak sabar dan tenang. Anda dapat mengatasinya dengan memeriksa kembali masalahnya, mencari, dan melakukan debug. 5 Jangan takut menghadapi masalah. Hanya dengan memecahkan lebih banyak masalah Anda dapat meningkatkan kemampuan Anda untuk menjadi seorang ahli (Jangan takut menghadapi masalah. Hanya dengan memecahkan lebih banyak masalah Anda dapat meningkatkan kemampuan Anda untuk menjadi seorang ahli)

Detail artikelnya adalah sebagai berikut:

Cara berpikir seperti seorang programmer — pelajaran dalam pemecahan masalah

Oleh Richard Reis

Jika Anda tertarik dengan pemrograman, Anda mungkin pernah melihat kutipan ini sebelumnya: Jika Anda tertarik dengan pemrograman, Anda mungkin pernah melihat kutipan ini:

“Setiap orang di negara ini harus belajar memprogram komputer, karena komputer mengajarkan Anda untuk berpikir.” —Steve Jobs

Anda mungkin juga bertanya-tanya apa sebenarnya yang dimaksud dengan berpikir seperti seorang programmer? Dan bagaimana Anda melakukannya?? Anda mungkin juga bertanya-tanya, apa sebenarnya yang dimaksud dengan berpikir seperti seorang programmer? Bagaimana Anda melakukannya?

Pada dasarnya, ini semua tentang cara yang lebih efektif untuk menyelesaikan masalah. Pada dasarnya, ini adalah cara yang lebih efisien untuk memecahkan masalah.

Dalam posting ini, tujuan saya adalah mengajari Anda seperti itu. Dalam artikel ini, tujuan saya adalah mengajari Anda cara ini.

Pada akhirnya, Anda akan tahu persis langkah-langkah apa yang harus diambil untuk menjadi pemecah masalah yang lebih baik. Pada akhirnya, Anda akan mengetahui cara menyelesaikan masalah dengan lebih baik.

Mengapa ini penting?

Pemecahan masalah adalah keterampilan meta. Pemecahan masalah adalah keterampilan meta.

Kita semua punya masalah. Besar dan kecil. Cara kita menghadapinya terkadang, ya…cukup acak. Kita semua punya masalah. Besar dan kecil. Cara kita mengatasi masalah ini terkadang acak. cukup acak. acak/acak

Kecuali Anda memiliki sistem, ini mungkin cara Anda “menyelesaikan” masalah (yang saya lakukan saat mulai membuat kode): Kecuali Anda memiliki sistem, ini mungkin cara Anda “menyelesaikan” masalah (inilah yang saya lakukan saat mulai membuat kode):

  1. Coba solusinya.
  2. Jika tidak berhasil, coba yang lain.
  3. Jika tidak berhasil, ulangi langkah 2 hingga Anda beruntung.

Dengar, terkadang kamu beruntung. Tapi itu adalah cara terburuk untuk menyelesaikan masalah! Dan itu sangat membuang-buang waktu. Dengar, terkadang kamu kurang beruntung. Tapi itu cara terburuk untuk menyelesaikan masalah! Ini sangat, sangat membuang-buang waktu.

Cara terbaik melibatkan a) memiliki kerangka kerja dan b) mempraktikkannya. Cara terbaik adalah dengan a) memiliki kerangka kerja dan b) mempraktikkannya.

“Hampir semua pengusaha mengutamakan keterampilan pemecahan masalah.Hampir semua pengusaha mengutamakan keterampilan pemecahan masalah.

Keterampilan memecahkan masalah hampir merupakan kualifikasi paling penting yang dicari oleh pemberi kerja….lebih dari kemahiran bahasa pemrograman, debugging, dan desain sistem.

Mendemonstrasikan pemikiran komputasi atau kemampuan untuk memecahkan masalah yang besar dan kompleks sama berharganya (jika tidak lebih) dibandingkan keterampilan teknis dasar yang diperlukan untuk suatu pekerjaan.” —Peringkat Peretas (Laporan Keterampilan Pengembang 2018)#### Memiliki kerangka kerja Untuk menemukan kerangka kerja yang tepat, saya mengikuti saran dalam buku Tim Ferriss tentang pembelajaran,“The 4-Hour Chef”. Untuk menemukan kerangka kerja yang tepat, saya mengikuti saran dalam buku Tim Ferriss tentang pembelajaran,

Hal ini membawa saya untuk mewawancarai dua orang yang sangat mengesankan: C. Jordan Ball (peringkat 1 atau 2 dari 65.000+ pengguna di Coderbyte), dan V. Anton Spraul (penulis buku “Think Like a Programmer: An Pengantar Pemecahan Masalah Kreatif”).

Saya menanyakan pertanyaan yang sama kepada mereka, dan coba tebak? Jawaban mereka sangat mirip! Saya menanyakan pertanyaan yang sama kepada mereka dan coba tebak? Jawaban mereka sangat mirip!

Sebentar lagi, Anda juga akan mengenal mereka.

Catatan tambahan: ini tidak berarti mereka melakukan semuanya dengan cara yang sama. Setiap orang berbeda. Anda akan berbeda. Namun jika Anda memulai dengan prinsip-prinsip yang kita semua sepakati baik, Anda akan melangkah lebih jauh dengan lebih cepat. Catatan tambahan: Ini tidak berarti mereka melakukan semuanya dengan cara yang sama. Setiap orang berbeda. Anda akan berbeda. Namun jika Anda memulai dengan prinsip-prinsip baik yang kita semua sepakati, Anda akan melangkah lebih jauh dan lebih cepat.

“Kesalahan terbesar yang saya lihat dilakukan oleh programmer baru adalah berfokus pada mempelajari sintaksis daripada mempelajari cara memecahkan masalah.” — V. Anton Spraul Kesalahan terbesar yang saya lihat dilakukan oleh programmer baru adalah berfokus pada mempelajari sintaksis daripada mempelajari cara memecahkan masalah.

Lantas, apa yang harus Anda lakukan saat menemui masalah baru? Lantas, apa yang harus Anda lakukan saat menemui masalah baru?

Berikut langkah-langkahnya:

1. Mengerti

Tahu persis apa yang ditanyakan. Kebanyakan soal yang sulit menjadi sulit karena Anda tidak memahaminya (karena itulah mengapa ini adalah langkah pertama). Tahu persis apa yang ditanyakan. Kebanyakan teka-teki sulit karena Anda tidak memahaminya (karenanya inilah langkah pertama).

Bagaimana cara mengetahui kapan Anda memahami suatu masalah? Ketika Anda bisa menjelaskannya dalam bahasa Inggris yang sederhana. Bagaimana Anda tahu jika Anda memahami suatu pertanyaan? Ketika Anda bisa menjelaskannya dalam bahasa Inggris yang sederhana.

Apakah Anda ingat saat Anda terjebak pada suatu masalah, Anda mulai menjelaskannya, dan Anda langsung melihat lubang dalam logika yang belum pernah Anda lihat sebelumnya? Apakah Anda ingat saat Anda terjebak pada suatu masalah, Anda mulai menjelaskannya, dan kemudian Anda langsung melihat lubang dalam logika yang belum pernah Anda lihat sebelumnya?

Kebanyakan programmer mengetahui perasaan ini. Kebanyakan programmer mengetahui perasaan ini.

Inilah sebabnya mengapa Anda harus menuliskan masalah Anda, mencoret-coret diagram, atau menceritakannya kepada orang lain (atau… beberapa orang menggunakan bebek karet). Inilah sebabnya mengapa Anda harus menuliskan masalah Anda, menggambar diagram, atau memberi tahu seseorang (atau hal lain…beberapa orang menggunakan bebek karet).

“Jika Anda tidak dapat menjelaskan sesuatu secara sederhana, Anda tidak memahaminya.” —Richard Feynman

2. Rencana

Jangan langsung menyelesaikan masalah tanpa rencana (dan berharap Anda dapat menyelesaikannya). Rencanakan solusi Anda! Jangan langsung menyelesaikan masalah tanpa rencana (dan berharap Anda bisa menyelesaikannya). Rencanakan solusi Anda! (Jangan langsung terjun ke dalamnya (Jangan langsung terjun ke dalamnya))

Tidak ada yang dapat membantu Anda jika Anda tidak dapat menuliskan langkah-langkah yang tepat. Jika Anda tidak dapat menuliskan langkah-langkah yang tepat, tidak ada yang akan membantu Anda.

Dalam pemrograman, ini berarti jangan langsung melakukan peretasan. Berikan waktu pada otak Anda untuk menganalisis masalah dan memproses informasi. Dalam pemrograman, ini berarti jangan langsung mulai meretas. Berikan waktu pada otak Anda untuk menganalisis masalah dan memproses informasi.

Untuk mendapatkan rencana yang baik, jawablah pertanyaan ini: Untuk mendapatkan rencana yang baik, jawablah pertanyaan ini:

“Dengan adanya masukan X, langkah apa yang diperlukan untuk mengembalikan keluaran Y?” Dengan adanya masukan X, langkah-langkah apa yang diperlukan untuk mengembalikan keluaran Y?

Catatan tambahan: Pemrogram memiliki alat hebat untuk membantu mereka dalam hal ini… Komentar! Catatan tambahan: Pemrogram memiliki alat hebat untuk membantu mereka mencapai hal ini… Catatan!

3. Bagilah

Perhatikan. Ini adalah langkah yang paling penting dari semuanya.

Jangan mencoba menyelesaikan satu masalah besar. Anda akan menangis. Jangan mencoba memecahkan masalah besar. Anda akan menangis.

Sebaliknya, bagi menjadi sub-masalah. Sub-masalah ini lebih mudah dipecahkan.

Kemudian, selesaikan setiap submasalah satu per satu. Mulailah dengan yang paling sederhana. Paling sederhana berarti Anda mengetahui jawabannya (atau lebih dekat dengan jawaban tersebut). Kemudian, selesaikan setiap submasalah satu per satu. Mulailah dengan yang paling sederhana. Arti paling sederhananya adalah Anda mengetahui jawabannya (atau lebih dekat dengan jawaban tersebut).

Setelah itu, yang paling sederhana berarti sub-masalah ini diselesaikan tidak bergantung pada penyelesaian sub-masalah lainnya. Setelah ini, pendekatan yang paling sederhana berarti bahwa solusi dari suatu submasalah tidak bergantung pada solusi dari masalah lainnya.

Setelah Anda menyelesaikan setiap sub-masalah, hubungkan titik-titiknya. Setelah Anda menyelesaikan setiap submasalah, hubungkan titik-titiknya.

Menghubungkan semua “sub-solusi” Anda akan memberi Anda solusi untuk masalah awal. Selamat! Menghubungkan semua “sub-solusi” akan memberi Anda solusi untuk masalah awal. Selamat!

Teknik ini merupakan landasan pemecahan masalah. Ingatlah (baca langkah ini lagi, jika perlu). Teknik ini merupakan landasan pemecahan masalah. Hafalkan (baca langkah ini lagi jika perlu).> “Jika saya dapat mengajarkan satu keterampilan pemecahan masalah kepada setiap pemrogram pemula, maka hal itu adalah ‘teknik mengurangi masalah.’

Misalnya, Anda seorang programmer baru dan Anda diminta untuk menulis sebuah program yang membaca sepuluh angka dan menentukan angka mana yang tertinggi ketiga. Bagi programmer baru, hal ini bisa menjadi tugas yang sulit, meskipun hanya memerlukan sintaks pemrograman dasar. Misalnya, Anda seorang programmer baru dan Anda diminta untuk menulis sebuah program yang membaca 10 angka dan kemudian menentukan angka mana yang tertinggi ketiga. Ini bisa menjadi tugas yang berat bagi programmer baru, meskipun hanya memerlukan sintaks pemrograman dasar.

Jika Anda mengalami kebuntuan, Anda harus mengurangi masalahnya menjadi sesuatu yang lebih sederhana. Daripada mencari angka tertinggi ketiga, bagaimana dengan mencari angka tertinggi secara keseluruhan? Masih terlalu tangguh? Bagaimana dengan mencari bilangan terbesar dari tiga bilangan saja? Atau yang lebih besar dari dua? Jika Anda mengalami kebuntuan, Anda harus menyederhanakan masalahnya. Daripada angka tertinggi ketiga, bagaimana cara mencari angka tertinggi secara keseluruhan? Masih terlalu kasar? Bagaimana dengan mencari bilangan terbesar dari tiga bilangan? Atau yang lebih besar dari keduanya?

Kurangi masalah sampai pada titik di mana Anda tahu cara menyelesaikannya dan tuliskan solusinya. Kemudian perluas masalahnya sedikit dan tulis ulang solusinya agar sesuai, dan teruskan sampai Anda kembali ke awal.” —V. Anton Spraul Sederhanakan masalah hingga Anda tahu cara menyelesaikannya dan tuliskan solusinya. Kemudian perluas masalahnya sedikit, tulis ulang solusinya agar cocok, dan lanjutkan hingga Anda kembali ke awal.

4. Terjebak?

Saat ini, Anda mungkin duduk di sana sambil berpikir, “Hai Richard… Itu keren, tapi bagaimana jika saya terjebak dan bahkan tidak bisa menyelesaikan sub-masalah??” Sekarang, Anda mungkin duduk di sana sambil berpikir “Hai Richard…” Itu keren, tapi bagaimana jika saya terjebak dan bahkan tidak bisa menyelesaikan submasalahnya?

Pertama, tarik napas dalam-dalam. Kedua, itu adil. Pertama, tarik napas dalam-dalam. Kedua, itu adil.

Namun jangan khawatir, teman. Ini terjadi pada semua orang! Jangan khawatir, teman. Ini terjadi pada semua orang!

Perbedaannya adalah pemrogram/pemecah masalah terbaik lebih penasaran terhadap bug/kesalahan daripada merasa kesal. Bedanya, programmer/pemecah masalah terbaik lebih penasaran dengan bug/bug daripada kesal.

Faktanya, berikut tiga hal yang harus dicoba saat menghadapi pukulan telak: Sebenarnya, ada tiga hal yang bisa Anda coba ketika sesuatu yang buruk terjadi pada Anda:

  • Debug: Lakukan langkah demi langkah melalui solusi Anda untuk mencoba menemukan kesalahan Anda. Pemrogram menyebutnya debugging (sebenarnya, hanya ini yang dilakukan debugger). Debugging: Telusuri solusi Anda, coba cari tahu apa yang salah. Pemrogram menyebut proses debug ini (sebenarnya, hanya ini yang dilakukan debugger).

“Seni debugging adalah mencari tahu apa yang sebenarnya Anda perintahkan untuk dilakukan oleh program Anda, bukan apa yang Anda pikir Anda perintahkan untuk dilakukan.” —Andrew Penyanyi Seni debugging adalah mencari tahu apa yang sebenarnya Anda perintahkan untuk dilakukan oleh program Anda, bukan apa yang menurut Anda harus dilakukan

  • Menilai kembali: Ambil langkah mundur. Lihatlah masalahnya dari sudut pandang lain. Adakah yang bisa diabstraksikan ke pendekatan yang lebih umum? Menilai kembali: Ambil langkah mundur. Lihatlah masalah ini dari sudut lain. Adakah yang bisa diabstraksikan ke dalam metode yang lebih umum?

“Kadang-kadang kita begitu tenggelam dalam detail suatu masalah sehingga kita mengabaikan prinsip-prinsip umum yang dapat menyelesaikan masalah tersebut pada tingkat yang lebih umum. […] “Kadang-kadang kita begitu terjebak dalam rincian suatu masalah sehingga kita kehilangan pandangan terhadap prinsip-prinsip umum untuk menyelesaikan masalah pada tingkat yang lebih umum.”

Contoh klasik dari hal ini, tentu saja, adalah penjumlahan dari daftar panjang bilangan bulat berurutan, 1 + 2 + 3 + … + n, yang dengan cepat dikenali oleh Gauss yang masih sangat muda sebagai n(n+1)/2, sehingga menghindari upaya untuk melakukan penjumlahan.” -C. Bola Jordan Tentu saja, contoh paling klasik adalah penjumlahan dari daftar panjang bilangan bulat berurutan, 1 + 2 + 3 +…+ n, yang dengan cepat dikenali oleh Gauss yang masih sangat muda sebagai n(n+1)/2, sehingga tidak perlu lagi menambahkannya.

Catatan tambahan: Cara lain untuk menilai kembali adalah dengan memulai dari awal. Hapus semuanya dan mulai lagi dengan pandangan yang segar. saya serius. Anda akan tercengang melihat betapa efektifnya hal ini. Catatan tambahan: Cara lain untuk mengevaluasi kembali adalah memulai dari awal. Hapus semuanya dan mulai lagi dengan pandangan yang segar. aku serius. Anda akan terkejut betapa efektifnya hal ini.

  • Riset: Ahh, bagus sekali Google. Anda membacanya dengan benar. Apa pun masalah yang Anda hadapi, mungkin ada yang sudah menyelesaikannya. Temukan orang/solusi itu. Faktanya, lakukan ini meskipun Anda telah memecahkan masalahnya! (Anda dapat belajar banyak dari solusi orang lain). Penelitian: Ah, bagus. Anda membacanya dengan benar. Apa pun masalah yang Anda hadapi, mungkin ada yang telah menyelesaikannya. Temukan orang/solusi itu. Faktanya, lakukanlah meskipun Anda menyelesaikan masalahnya! (Anda dapat belajar banyak dari solusi orang lain).

Peringatan: Jangan mencari solusi untuk masalah besar. Hanya mencari solusi untuk sub-masalah. Mengapa? Karena kecuali Anda berjuang (walaupun sedikit), Anda tidak akan belajar apa pun. Jika Anda tidak mempelajari apa pun, Anda membuang-buang waktu. Catatan: Jangan mencari solusi untuk masalah besar. Temukan hanya solusi untuk submasalah. Mengapa? Karena kecuali Anda mencoba (walaupun sedikit), Anda tidak akan belajar apa pun. Jika Anda tidak belajar apa pun, Anda membuang-buang waktu.

Latihan

Jangan berharap menjadi hebat hanya dalam satu minggu. Jika Anda ingin menjadi pemecah masalah yang baik, selesaikanlah banyak masalah! Jangan berharap menjadi hebat hanya dalam satu minggu. Jika Anda ingin menjadi pemecah masalah yang baik, selesaikanlah banyak masalah!

Praktik. Praktik. Praktik. Hanya masalah waktu sebelum Anda menyadari bahwa “masalah ini dapat diselesaikan dengan mudah dengan <masukkan konsep di sini>.” Praktik. Praktik. Praktik. Cepat atau lambat Anda akan menyadari “masalah ini dapat diselesaikan dengan mudah dengan <masukkan konsep di sini>”.

Bagaimana cara berlatih? Ada pilihan di luar wazoo! Bagaimana cara berlatih? Ada banyak pilihan!Teka-teki catur, soal matematika, Sudoku, Go, Monopoli, video-game, cryptokitties, bla… bla… bla…. permainan catur, soal matematika, sudoku, monopoli, video game, cryptokitties, bla bla bla…

Faktanya, pola umum di antara orang-orang sukses adalah kebiasaan mereka mempraktikkan “pemecahan masalah mikro”. Misalnya, Peter Thiel bermain catur, dan Elon Musk bermain video game. Faktanya, pola umum di antara orang-orang sukses adalah mereka mempraktikkan pemecahan masalah mikro. Misalnya Peter Thiel bermain catur dan Elon Musk bermain video game.

“Byron Reeves berkata, ‘Jika Anda ingin melihat seperti apa kepemimpinan bisnis dalam tiga hingga lima tahun ke depan, lihatlah apa yang terjadi di game online.’ Byron Reeves berkata, 'Jika Anda ingin mengetahui seperti apa kepemimpinan bisnis dalam tiga hingga lima tahun ke depan, lihatlah apa yang terjadi di game online. ’”

Maju cepat ke hari ini. Elon [Musk], Reid [Hoffman], Mark Zuckerberg dan banyak lainnya mengatakan bahwa game telah menjadi dasar kesuksesan mereka dalam membangun perusahaan.” — Mary Meeker (laporan tren internet 2017) Maju cepat ke hari ini. Elon Musk, Reid Hoffman, Mark Zuckerberg dan banyak lainnya mengatakan bahwa game adalah landasan kesuksesan perusahaan mereka.

Apakah ini berarti Anda sebaiknya bermain video game saja? Sama sekali tidak. Apakah ini berarti Anda hanya boleh bermain video game? Terima kasih kembali.

Tapi apa sebenarnya video-game itu? Benar sekali, pemecahan masalah! Tapi apa sebenarnya video game itu? Ya, masalah terpecahkan!

Jadi, yang harus Anda lakukan adalah mencari jalan keluar untuk berlatih. Sesuatu yang memungkinkan Anda memecahkan banyak masalah mikro (idealnya, sesuatu yang Anda sukai). Jadi, yang harus Anda lakukan adalah mencari jalan keluar untuk berlatih. Sesuatu yang memungkinkan Anda menyelesaikan banyak masalah kecil (idealnya, sesuatu yang Anda sukai).

Misalnya, saya menyukai tantangan coding. Setiap hari, saya mencoba menyelesaikan setidaknya satu tantangan (biasanya di Coderbyte). Misalnya, saya menyukai tantangan pemrograman. Setiap hari, saya mencoba menyelesaikan setidaknya satu tantangan (biasanya di Coderbyte).

Seperti saya katakan, semua masalah memiliki pola yang sama. Seperti yang saya katakan, semua pertanyaan memiliki pola yang serupa.

Kesimpulan

Itu saja semuanya! Ini semuanya!

Sekarang, Anda lebih tahu apa artinya “berpikir seperti seorang programmer.” Sekarang, Anda tahu apa yang dimaksud dengan “berpikir seperti seorang programmer”.

Anda juga tahu bahwa pemecahan masalah adalah keterampilan yang luar biasa untuk dikembangkan (keterampilan meta). Anda juga tahu bahwa pemecahan masalah adalah keterampilan yang luar biasa (meta-skill).

Seolah-olah itu belum cukup, perhatikan bagaimana Anda juga mengetahui apa yang harus dilakukan untuk melatih keterampilan pemecahan masalah Anda! Jika itu belum cukup, perhatikan bahwa Anda juga tahu cara melatih keterampilan pemecahan masalah!

Fiuh… Keren sekali kan? Keren kan?

Akhirnya, saya berharap Anda menghadapi banyak masalah. Akhirnya, saya berharap Anda mendapat banyak masalah.

Anda membacanya dengan benar. Setidaknya sekarang Anda tahu cara mengatasinya! (juga, Anda akan belajar bahwa dengan setiap solusi, Anda meningkat). Anda membacanya dengan benar. Setidaknya sekarang Anda tahu cara mengatasinya! (Juga, Anda akan belajar bahwa Anda akan meningkat dengan setiap solusi).

“Saat Anda merasa telah berhasil melewati satu rintangan, rintangan lain akan muncul. Namun itulah yang membuat hidup tetap menarik.[…] Saat Anda merasa telah berhasil melewati satu rintangan, rintangan lain akan muncul. Tapi itulah yang membuat hidup ini menarik.

Hidup adalah sebuah proses untuk menerobos hambatan-hambatan ini — serangkaian garis pertahanan yang harus kita lewati. Hidup adalah sebuah proses untuk menerobos hambatan-hambatan ini—serangkaian pertahanan yang harus kita lewati.

Setiap kali, Anda akan mempelajari sesuatu. Setiap saat, Anda mempelajari sesuatu.

Setiap saat, Anda akan mengembangkan kekuatan, kebijaksanaan, dan perspektif. Setiap saat, Anda akan mengembangkan kekuatan, kebijaksanaan, dan wawasan.

Setiap saat, semakin banyak pesaing yang kalah. Hingga yang tersisa hanyalah dirimu: versi terbaik dirimu.” —Ryan Holiday (Hambatan adalah Jalannya) Setiap saat, semakin banyak persaingan yang hilang. Sampai Anda menjadi versi terbaik dari diri Anda sendiri. ——Ryan Holliday (Rintangan adalah Jalannya)

Sekarang, selesaikan beberapa masalah!

Dan semoga sukses 🙂

Terima kasih khusus kepada C. Jordan Ball dan V. Anton Spraul. Semua nasihat bagus di sini datang dari mereka.

Selain itu, semua pengetahuan pemrograman yang saya peroleh dalam waktu singkat tidak akan terjadi tanpa Lambda School. Tidak cukup berterima kasih/merekomendasikan mereka.

Selain itu, semua ilmu pemrograman yang saya peroleh dalam waktu sesingkat itu tidak akan terjadi tanpa Lambda School. Terima kasih/merekomendasikan mereka sangat banyak.

Terima kasih telah membaca! 😊 Jika Anda menikmatinya, uji berapa kali Anda dapat menekan 👏 dalam 5 detik. Ini adalah latihan kardio yang bagus untuk jari Anda DAN akan membantu orang lain melihat ceritanya. Terima kasih telah membaca! 😊 Kalau suka, uji berapa kali kamu bisa memukulnya dalam 5 detik. 👏 Ini adalah latihan kardio yang bagus untuk jari Anda dan juga akan membantu orang lain melihat cerita ini.

TIPS

Saya mempelajari cara menggunakan Instrumen minggu ini dan akan menerjemahkan dokumen resmi terbaru. Saya telah menerjemahkan sebagian kecil dari bab pertama: https://dandan2009.github.io/2018/10/26/Instruments-chinese-translation/

Bagikan

Hari ini saya mempelajari beberapa istilah baru: “jaringan bersih”, “jaringan gelap”, “jaringan dalam”, dan jaringan bayangan. Clearnet mengacu pada jaringan yang biasa kita gunakan. “Web Gelap”, “Web Dalam”, “Web Bersih”, Web Bayangan. “Web Gelap”, “Web Dalam”, dan Web Bayangan semuanya mengacu pada jaringan yang berada di luar jangkauan orang biasa dan tidak dapat diakses melalui metode konvensional. Sebagian besar jaringan ini berisi informasi ilegal.

Konten berikut berasal dari Internet:

“Web Gelap” DarkWeb dan DeepWeb DeepWeb adalah berbagai konten Internet yang tidak dapat diindeks oleh mesin pencari Lalu apa itu Darknet (Bahasa Inggris: Darknet atau Dark Web)? Darknet adalah jaringan yang hanya dapat dihubungkan menggunakan perangkat lunak khusus, otorisasi khusus, atau pengaturan komputer khusus. Alamat server dan transmisi data di web gelap biasanya anonim dan tidak terlihat. Sebaliknya, Internet yang umum digunakan disebut “Clearnet” atau “Clearnet” (Bahasa Inggris: Clearnet) karena dapat melacak lokasi geografis sebenarnya dan identitas orang yang berkomunikasi. Onion Network saat ini diakui sebagai metode yang lebih baik untuk komunikasi Internet anonim.

Menggunakan Tor Menggunakan Tor tidaklah sulit. Jika Anda memiliki akses ke Google, cukup masuk ke situs Tor http://www.theonionrouter.com/下载Tor和Tor浏览器即可~

https://www.mushroomnetworks.com/

rumah kartu Orang tua di film “Sin City”

Faktanya, istilah “Shadow Web” baru muncul pada awal tahun ini, dan asal muasal istilah ini berasal dari postingan di Reddit (mirip dengan Hong Kong Gordon Forum). Ini juga cerita yang ingin saya perkenalkan kepada Anda hari ini… sebuah peringatan yang mengerikan.Seperti semua teknologi, ada sisi baik dan jahat. Ketika jaringan berperan dalam berbagi informasi untuk kepentingan umat manusia, ia juga memiliki lapisan struktural yang mirip dengan hitam dan putih di masyarakat, melahirkan tiga bersaudara yang disebut jaringan jernih, jaringan dalam, dan jaringan gelap.

Asal usul web gelap

Lantas, kapan website tersebut mulai berkembang? Ironisnya, seperti sumber sebagian besar teknologi, penggagasnya harus disebutkan di sini – militer AS.

Pada tahun 1996, para ilmuwan dari Institut Penelitian Angkatan Laut AS mengajukan makalah berjudul “Informasi Jalur Tersembunyi” dan mengusulkan gagasan untuk membangun sistem siluman yang memungkinkan setiap pengguna untuk tetap anonim secara real-time saat terhubung ke Internet tanpa mengungkapkan identitas mereka ke server. Pembangunan sistem ini sangat diperlukan. Pertama, dapat melindungi para pembangkang politik di berbagai negara, melepaskan diri dari penindasan otoriter di berbagai negara, dan mempopulerkan demokrasi universal di mata orang Amerika; kedua, hal ini dapat memberikan tempat yang aman bagi personel intelijen AS untuk bertukar informasi.

Pada bulan Oktober 2003, ide ini mulai diterapkan secara resmi untuk menyediakan tempat online anonim gratis bagi pengguna. Karena kata sandi yang melindungi data dibungkus seperti lapisan bawang, sistem ini akhirnya disebut Tor (The Onion Router). https://www.ufochn.com/article-205-1.html

https://www.aqniu.com/industry/37816.html

https://parrotsec-cn.org/t/topic/50

http://blog.sina.com.cn/s/blog_63296ead0102x95x.html

http://www.theonionrouter.com/about/torusers.html.en#normalusers

http://www.thehiddenwiki.org/

Website berikut ini adalah beberapa website darknet yang ditemukan Rocket di website terkenal thehiddenwiki.org/. Pastikan untuk menggunakan Tor untuk mengakses web gelap (situs web yang diakhiri dengan .onion) Pastikan untuk menggunakan https Jangan gunakan Tor untuk masuk ke situs web apa pun (seperti Baidu Netdisk, Weibo, Zhihu, dll.) Jangan mengirimkan informasi pribadi apa pun yang tidak diminta tentang diri Anda

https://www.ufochn.com/article-205-1.html