{"id":6695,"date":"2024-12-15T18:15:13","date_gmt":"2024-12-15T15:15:13","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/"},"modified":"2024-12-15T18:15:13","modified_gmt":"2024-12-15T15:15:13","slug":"leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/","title":{"rendered":"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme"},"content":{"rendered":"<p><body><\/p>\n<p>LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme<\/p>\n<p>LeetCode&#8217;un 380. sorusu,  &#8220;Insert Delete GetRandom O(1)&#8221;  adl\u0131 olduk\u00e7a zorlay\u0131c\u0131 bir problem sunuyor.  Bu problemde, eleman ekleme, silme ve rastgele bir eleman getirme i\u015flemlerinin hepsinin ortalama O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda ger\u00e7ekle\u015fmesini sa\u011flayan bir veri yap\u0131s\u0131 olu\u015fturmam\u0131z gerekiyor.  Ba\u015flang\u0131\u00e7ta bu olduk\u00e7a imkans\u0131z gibi g\u00f6r\u00fcnse de, do\u011fru veri yap\u0131s\u0131 ve strateji ile bu ba\u015far\u0131labilir.<\/p>\n<p>Bu makalede,  JavaScript kullanarak bu sorunu nas\u0131l \u00e7\u00f6zd\u00fc\u011f\u00fcm\u00fc ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m.  Amac\u0131m\u0131z,  herhangi bir eleman\u0131 sabit s\u00fcrede eklemek, silmek ve rastgele bir eleman almak.<\/p>\n<h2>\u00c7\u00f6z\u00fcm\u00fcn Temeli: HashMap ve Array<\/h2>\n<p>Bu problemin \u00e7\u00f6z\u00fcm\u00fc, iki veri yap\u0131s\u0131n\u0131n birlikte kullan\u0131lmas\u0131na dayan\u0131r: Bir HashMap (JavaScript&#8217;te Map) ve bir Array.  HashMap, elemanlar\u0131 indekslerine e\u015flemede kullan\u0131l\u0131rken, Array ise elemanlar\u0131n s\u0131ral\u0131 bir \u015fekilde tutulmas\u0131n\u0131 sa\u011flar.  \u0130\u015fte bu ikili, O(1) karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 elde etmemizi m\u00fcmk\u00fcn k\u0131l\u0131yor.<\/p>\n<p>\u00d6ncelikle,  HashMap&#8217;imizde her bir eleman\u0131, array i\u00e7indeki indeksine e\u015fle\u015ftiriyoruz.  Bu sayede, bir eleman\u0131 silmek istedi\u011fimizde, \u00f6nce HashMap&#8217;ten indeksini buluyor ve sonra Array&#8217;deki o indeksi siliyoruz.  Ayr\u0131ca,  rastgele bir eleman getirmek istedi\u011fimizde, Array&#8217;in uzunlu\u011fundan rastgele bir indeks \u00fcretiyor ve bu indeksteki eleman\u0131 al\u0131yoruz.  Bu i\u015flemler,  her ikisi de O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda ger\u00e7ekle\u015ftiriliyor.<\/p>\n<h2>JavaScript Kodu<\/h2>\n<pre><code class=\"language-javascript\">\nclass RandomizedSet {\n    constructor() {\n        this.map = new Map(); \/\/ Eleman-indeks e\u015fle\u015ftirmesi i\u00e7in\n        this.array = []; \/\/ Elemanlar\u0131 saklamak i\u00e7in\n    }\n\n    insert(val) {\n        if (this.map.has(val)) return false;\n        this.map.set(val, this.array.length);\n        this.array.push(val);\n        return true;\n    }\n\n    remove(val) {\n        if (!this.map.has(val)) return false;\n        let index = this.map.get(val);\n        let last = this.array.pop(); \/\/ Son eleman\u0131 al\n\n        if (last !== val) { \/\/ Silinen eleman son eleman de\u011filse\n            this.array[index] = last; \/\/ Son eleman\u0131 silinenin yerine koy\n            this.map.set(last, index); \/\/ Son eleman\u0131n indeksini g\u00fcncelle\n        }\n        this.map.delete(val);\n        return true;\n    }\n\n    getRandom() {\n        return this.array[Math.floor(Math.random() * this.array.length)];\n    }\n}\n<\/code><\/pre>\n<p>Yukar\u0131daki kodda,  <code>insert<\/code> fonksiyonu yeni bir eleman ekler, <code>remove<\/code> fonksiyonu bir eleman\u0131 siler ve <code>getRandom<\/code> fonksiyonu rastgele bir eleman d\u00f6nd\u00fcr\u00fcr.  T\u00fcm fonksiyonlar, ortalama O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda \u00e7al\u0131\u015f\u0131r.<\/p>\n<h2>Optimizasyonlar ve Detaylar<\/h2>\n<p>Kodda, silme i\u015flemi s\u0131ras\u0131nda son eleman\u0131n silinen eleman\u0131n yerine konmas\u0131 \u00f6nemli bir optimizasyondur.  Bu, array&#8217;in yeniden indekslenmesini \u00f6nler ve O(1) karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 korur.  Ayr\u0131ca, HashMap&#8217;in kullan\u0131m\u0131, elemanlar\u0131n h\u0131zl\u0131 bir \u015fekilde bulunmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Bu \u00e7\u00f6z\u00fcm,  hem zaman hem de alan karma\u015f\u0131kl\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan olduk\u00e7a verimlidir.  Ancak,  hash fonksiyonunun performans\u0131,  pratik uygulamalarda zaman karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 etkileyebilir.  Bu nedenle,  iyi bir hash fonksiyonunun se\u00e7ilmesi \u00f6nemlidir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>LeetCode&#8217;un 380. sorusu,  veri yap\u0131lar\u0131 ve algoritmalar konusunda derin bir anlay\u0131\u015f gerektiren zorlu bir problemdir.  Bu makalede,  JavaScript kullanarak O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 sa\u011flayan bir \u00e7\u00f6z\u00fcm sunduk.  Umar\u0131m bu a\u00e7\u0131klama,  sorunu anlaman\u0131za ve \u00e7\u00f6zmenize yard\u0131mc\u0131 olmu\u015ftur. Daha fazla algoritma ve veri yap\u0131s\u0131 \u00f6rne\u011fi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.<\/p>\n<p>Faydal\u0131 bulabilece\u011finiz bir di\u011fer kaynak ise: <a href=\"https:\/\/dev.to\/rahulgithubweb\/leetcode-challenge-380-insert-delete-getrandom-o1-javascript-solution-4gej\">Dev.to makalesi<\/a><\/p>\n<h3>#Etiketler<\/h3>\n<p>#LeetCode #JavaScript #Algoritma #VeriYap\u0131s\u0131 #O(1) #getRandom #insert #delete #HashMap #Map #Array #RandomizedSet #Programlama<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme LeetCode&#8217;un 380. sorusu, &#8220;Insert Delete GetRandom O(1)&#8221;&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-6695","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme<\/title>\n<meta name=\"description\" content=\"LeetCode&#039;un 380. sorusu, &quot;Insert Delete GetRandom O(1)&quot; adl\u0131 olduk\u00e7a zorlay\u0131c\u0131 bir problem sunuyor. Bu problemde, eleman ekleme, silme ve rastgele bir eleman getirme i\u015flemlerinin hepsinin ortalama O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda ger\u00e7ekle\u015fmesini sa\u011flayan bir veri yap\u0131s\u0131 olu\u015fturmam\u0131z gerekiyor. Ba\u015flang\u0131\u00e7ta bu olduk\u00e7a imkans\u0131z gibi g\u00f6r\u00fcnse de, do\u011fru veri yap\u0131s\u0131 ve strateji ile bu ba\u015far\u0131labilir.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme\" \/>\n<meta property=\"og:description\" content=\"LeetCode&#039;un 380. sorusu, &quot;Insert Delete GetRandom O(1)&quot; adl\u0131 olduk\u00e7a zorlay\u0131c\u0131 bir problem sunuyor. Bu problemde, eleman ekleme, silme ve rastgele bir eleman getirme i\u015flemlerinin hepsinin ortalama O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda ger\u00e7ekle\u015fmesini sa\u011flayan bir veri yap\u0131s\u0131 olu\u015fturmam\u0131z gerekiyor. Ba\u015flang\u0131\u00e7ta bu olduk\u00e7a imkans\u0131z gibi g\u00f6r\u00fcnse de, do\u011fru veri yap\u0131s\u0131 ve strateji ile bu ba\u015far\u0131labilir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-15T15:15:13+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme\",\"datePublished\":\"2024-12-15T15:15:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/\"},\"wordCount\":461,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/#respond\"]}],\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/\",\"name\":\"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2024-12-15T15:15:13+00:00\",\"description\":\"LeetCode'un 380. sorusu, \\\"Insert Delete GetRandom O(1)\\\" adl\u0131 olduk\u00e7a zorlay\u0131c\u0131 bir problem sunuyor. Bu problemde, eleman ekleme, silme ve rastgele bir eleman getirme i\u015flemlerinin hepsinin ortalama O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda ger\u00e7ekle\u015fmesini sa\u011flayan bir veri yap\u0131s\u0131 olu\u015fturmam\u0131z gerekiyor. Ba\u015flang\u0131\u00e7ta bu olduk\u00e7a imkans\u0131z gibi g\u00f6r\u00fcnse de, do\u011fru veri yap\u0131s\u0131 ve strateji ile bu ba\u015far\u0131labilir.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme","description":"LeetCode'un 380. sorusu, \"Insert Delete GetRandom O(1)\" adl\u0131 olduk\u00e7a zorlay\u0131c\u0131 bir problem sunuyor. Bu problemde, eleman ekleme, silme ve rastgele bir eleman getirme i\u015flemlerinin hepsinin ortalama O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda ger\u00e7ekle\u015fmesini sa\u011flayan bir veri yap\u0131s\u0131 olu\u015fturmam\u0131z gerekiyor. Ba\u015flang\u0131\u00e7ta bu olduk\u00e7a imkans\u0131z gibi g\u00f6r\u00fcnse de, do\u011fru veri yap\u0131s\u0131 ve strateji ile bu ba\u015far\u0131labilir.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/","og_locale":"tr_TR","og_type":"article","og_title":"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme","og_description":"LeetCode'un 380. sorusu, \"Insert Delete GetRandom O(1)\" adl\u0131 olduk\u00e7a zorlay\u0131c\u0131 bir problem sunuyor. Bu problemde, eleman ekleme, silme ve rastgele bir eleman getirme i\u015flemlerinin hepsinin ortalama O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda ger\u00e7ekle\u015fmesini sa\u011flayan bir veri yap\u0131s\u0131 olu\u015fturmam\u0131z gerekiyor. Ba\u015flang\u0131\u00e7ta bu olduk\u00e7a imkans\u0131z gibi g\u00f6r\u00fcnse de, do\u011fru veri yap\u0131s\u0131 ve strateji ile bu ba\u015far\u0131labilir.","og_url":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2024-12-15T15:15:13+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme","datePublished":"2024-12-15T15:15:13+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/"},"wordCount":461,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/#respond"]}],"copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/","url":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/","name":"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2024-12-15T15:15:13+00:00","description":"LeetCode'un 380. sorusu, \"Insert Delete GetRandom O(1)\" adl\u0131 olduk\u00e7a zorlay\u0131c\u0131 bir problem sunuyor. Bu problemde, eleman ekleme, silme ve rastgele bir eleman getirme i\u015flemlerinin hepsinin ortalama O(1) zaman karma\u015f\u0131kl\u0131\u011f\u0131nda ger\u00e7ekle\u015fmesini sa\u011flayan bir veri yap\u0131s\u0131 olu\u015fturmam\u0131z gerekiyor. Ba\u015flang\u0131\u00e7ta bu olduk\u00e7a imkans\u0131z gibi g\u00f6r\u00fcnse de, do\u011fru veri yap\u0131s\u0131 ve strateji ile bu ba\u015far\u0131labilir.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/leetcode-380-o1-zaman-karmasikliginda-ekle-sil-ve-rastgele-eleman-getirme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"LeetCode 380: O(1) Zaman Karma\u015f\u0131kl\u0131\u011f\u0131nda Ekle, Sil ve Rastgele Eleman Getirme"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/6695","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=6695"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/6695\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=6695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=6695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=6695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}