{"id":7273,"date":"2025-06-25T20:48:16","date_gmt":"2025-06-25T15:18:16","guid":{"rendered":"https:\/\/namastedev.com\/blog\/?p=7273"},"modified":"2025-09-29T18:55:22","modified_gmt":"2025-09-29T13:25:22","slug":"removeelement","status":"publish","type":"post","link":"https:\/\/namastedev.com\/blog\/removeelement\/","title":{"rendered":"Remove Element"},"content":{"rendered":"\n<!-- PrismJS for Syntax Highlighting -->\n<link href=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/themes\/prism-tomorrow.min.css\" rel=\"stylesheet\">\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/prism.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/plugins\/autoloader\/prism-autoloader.min.js\"><\/script>\n\n<style>\n.wp_blog_theme {\n  --primary: #E58C32;\n  --secondary: #030302;\n  --light-bg: #fef9f4;\n  --text-dark: #2d2d2d;\n  --tab-radius: 12px;\n  --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n  --code-bg: #001f3f;\n  --code-text: #d4f1ff;\n}\n\n.wp_blog_container {\n  font-family: 'Segoe UI', sans-serif;\n  background: var(--light-bg);\n  margin: 0;\n  padding: 0;\n  color: var(--text-dark);\n}\n\n\/* Heading *\/\n.wp_blog_main-heading {\n  text-align: center;\n  font-size: 2.4rem;\n  color: var(--primary);\n  margin-top: 2.5rem;\n  font-weight: bold;\n}\n\n\/* Explanation Card *\/\n.wp_blog_explanation,\n.wp_blog_code-tabs-container {\n  max-width: 940px;\n  margin: 2rem auto;\n  padding: 2rem;\n  background: white;\n  border-radius: var(--tab-radius);\n  box-shadow: var(--shadow);\n}\n\n\/* Text and Visuals *\/\n.wp_blog_explanation h2 {\n  font-size: 1.4rem;\n  color: var(--primary);\n  margin-bottom: 0.5rem;\n}\n\n.wp_blog_explanation p,\n.wp_blog_explanation li {\n  font-size: 1.05rem;\n  line-height: 1.7;\n  margin: 0.5rem 0;\n}\n\n.wp_blog_explanation code {\n  background: #fef9f4;   \/* light bg instead of dark blue *\/\n  color: #E58C32;        \/* brand orange *\/\n  padding: 3px 6px;\n  border-radius: 4px;\n  font-family: 'Courier New', monospace;\n  font-weight: 600;      \/* optional, makes it pop *\/\n}\n\n.wp_blog_explanation img {\n  max-width: 100%;\n  border-radius: var(--tab-radius);\n  margin-top: 1rem;\n  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);\n}\n\n\/* Tab Buttons *\/\n.wp_blog_code-tabs-header {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 0.5rem;\n  margin-bottom: 1rem;\n}\n\n.wp_blog_code-tab-button {\n  padding: 0.6rem 1.2rem;\n  border: 1px solid var(--primary);\n  background: white;\n  color: var(--primary);\n  border-radius: 50px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: all 0.3s ease;\n}\n\n.wp_blog_code-tab-button:hover {\n  background: var(--secondary);\n}\n\n.wp_blog_code-tab-button.active {\n  background: var(--primary);\n  color: white;\n}\n\n\/* Code Content *\/\n.wp_blog_code-tab-content {\n  display: none;\n  background: var(--code-bg);\n  border-radius: var(--tab-radius);\n}\n\n.wp_blog_code-tab-content.active {\n  display: block;\n}\n\n.wp_blog_code-tab-content pre {\n  margin: 0;\n  padding: 1.5rem;\n  font-size: 1rem;\n  overflow-x: auto;\n  background: var(--code-bg);\n  border-radius: var(--tab-radius);\n  color: var(--code-text);\n}\n\n\/* Dark mode variables *\/\n.wp_blog_theme.dark-mode {\n  --light-bg: #121212;\n  --text-dark: #f5f5f5;\n  --shadow: 0 4px 12px rgba(255, 255, 255, 0.08);\n  --code-bg: #1e1e1e;\n  --code-text: #c5f0ff;\n}\n\n.wp_blog_theme.dark-mode .wp_blog_explanation {\n  background: #1e1e1e;\n}\n\n\/* Dark mode code highlight *\/\n.wp_blog_theme.dark-mode .wp_blog_explanation code {\n  background: #333;\n  color: #ffd27f;\n}\n\n.wp_blog_theme {\n  position: relative; \/* makes it the reference for absolute children *\/\n}\n\n.wp_blog_toggle-btn {\n  position: absolute;\n  top: 1rem;\n  right: 1rem;\n  z-index: 9999;\n  padding: 0.5rem 0.8rem;\n  border-radius: 10%;\n  background: var(--primary);\n  color: white;\n  font-weight: bold;\n  cursor: pointer;\n  border: none;\n  box-shadow: var(--shadow);\n  transition: background 0.3s, transform 0.2s;\n}\n\n.wp_blog_toggle-btn:hover {\n  background: #cc772e;\n}\n\n.wp_blog_theme.dark-mode .wp_blog_code-tabs-container {\n  background: #1e1e1e;\n}\n<\/style>\n\n<div class=\"wp_blog_container wp_blog_theme\">\n  <button id=\"blogNotesThemeToggle\" class=\"wp_blog_toggle-btn\">\ud83c\udf19<\/button>\n  <h1 class=\"wp_blog_main-heading\"><\/h1>\n\n  <div class=\"wp_blog_explanation\">\n    <h2>Problem Statement:<\/h2>\n        <p>Given an integer array nums and an integer <code>val<\/code>, remove all occurrences of <code>val<\/code> in-place. The order of the elements may be changed. Then return the number of elements in nums which are not equal to <code>val<\/code>.<\/p>\n<br\/>\n        <p>Consider the number of elements in <code>nums<\/code> which are not equal to <code>val<\/code> be <code>k<\/code>. To get accepted, you need to:<\/p>\n\n        <p>Modify <code>nums<\/code> such that the first <code>k<\/code> elements contain elements not equal to <code>val<\/code>.\n        The remaining elements beyond <code>k<\/code> do not matter.\n        Return <code>k<\/code>.<\/p>\n\n                <h2>Examples:<\/h2>\n\n                <h5>Example 1:<\/h5>\n                <p><strong>Input:<\/strong> nums = [3,2,2,3], val = 3<\/p>\n                <p><strong>Output:<\/strong> 2, nums = [2,2,_,_]<\/p>\n                <p>\n                  <code>Explanation:<\/code>\n                  The first 2 elements should be 2. Underscores represent irrelevant values.\n                <\/p>\n\n                <h5>Example 2:<\/h5>\n                <p><strong>Input:<\/strong> nums = [0,1,2,2,3,0,4,2], val = 2<\/p>\n                <p><strong>Output:<\/strong> 5, nums = [0,1,4,0,3,_,_,_]<\/p>\n                <p>\n                  <code>Explanation:<\/code> \n                   The first 5 elements should be any order of [0,1,4,0,3].\n                <\/p>\n\n                <h2>Approach:<\/h2>\n                <ul>\n                    <li>Use pointer<code>x<\/code> to track where the next non-val element should go.<\/li>\n                    <li>Traverse the array with index <code>i<\/code>.<\/li>\n                    <li>If <code>nums[i] != val<\/code>, assign <code>nums[x] = nums[i]<\/code>and increment <code>x<\/code>.<\/li>\n                <\/ul>\n\n\n <h2>Time Complexity:<\/h2>\n                <li>\n                  <p><strong>Time Complexity = O(n)<\/strong>, where <code>n = nums.length<\/code>.<\/p>\n                <\/li>\n                <h2>Space Complexity:<\/h2>\n                <li>\n                  <p><strong>Space Complexity = O(1)<\/strong>(constant extra space).<\/p>\n                <\/li>\n\n<h2>Dry Run<\/h2>\n<div style=\"background: var(--light-bg); border-left: 4px solid var(--primary); padding: 1rem; border-radius: var(--tab-radius); margin: 1rem 0; color: var(--text-dark);\"> \n  <p><strong>Input:<\/strong> <code>[0, 1, 2, 2, 3, 0, 4, 2], val = 2<\/code><\/p> \n  \n  <pre style=\"white-space: pre-wrap; background: var(--code-bg); padding: 1rem; border-radius: 8px; overflow-x: auto; color: var(--code-text);\">\nInitial state: \n  x = 0 \n\ni = 0 \u2192 nums[0] = 0 \u2260 2 \u2192 nums[0] = 0, x = 1\ni = 1 \u2192 nums[1] = 1 \u2260 2 \u2192 nums[1] = 1, x = 2\ni = 2 \u2192 nums[2] = 2 = 2 \u2192 skip\ni = 3 \u2192 nums[3] = 2 = 2 \u2192 skip\ni = 4 \u2192 nums[4] = 3 \u2260 2 \u2192 nums[2] = 3, x = 3\ni = 5 \u2192 nums[5] = 0 \u2260 2 \u2192 nums[3] = 0, x = 4\ni = 6 \u2192 nums[6] = 4 \u2260 2 \u2192 nums[4] = 4, x = 5\ni = 7 \u2192 nums[7] = 2 = 2 \u2192 skip\n  <\/pre> \n  \n  <p><strong>Output:<\/strong> <code>k = 5, nums = [0, 1, 3, 0, 4]<\/code><\/p> \n<\/div>\n\n        <h2>Visualisation:<\/h2>\n        <img decoding=\"async\" src=\"https:\/\/namastedev.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot-2025-06-25-at-10.57.03\u202fPM.png\" alt=\"Remove duplicates\" \/>\n    <\/div>\n\n\n  <div class=\"wp_blog_code-tabs-container\">\n    <div class=\"wp_blog_code-tabs-header\">\n      <button class=\"wp_blog_code-tab-button active\" data-lang=\"js\">JavaScript<\/button>\n      <button class=\"wp_blog_code-tab-button\" data-lang=\"py\">Python<\/button>\n      <button class=\"wp_blog_code-tab-button\" data-lang=\"java\">Java<\/button>\n      <button class=\"wp_blog_code-tab-button\" data-lang=\"cpp\">C++<\/button>\n      <button class=\"wp_blog_code-tab-button\" data-lang=\"c\">C<\/button>\n      <button class=\"wp_blog_code-tab-button\" data-lang=\"cs\">C#<\/button>\n    <\/div>\n\n    <div class=\"wp_blog_code-tab-content active\" data-lang=\"js\">\n      <pre><code class=\"language-javascript\">\nvar removeElement = function(nums, val) {\n  let x = 0;\n  for (let i = 0; i < nums.length; i++) {\n    if (nums[i] != val) {\n      nums[x] = nums[i];\n      x++;\n    }\n  }\n  return x;\n};\n<\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"py\">\n      <pre><code class=\"language-python\">\nclass Solution(object):\n  def removeElement(self, nums, val):\n    x = 0\n    for i in range(len(nums)):\n      if nums[i] != val:\n        nums[x] = nums[i]\n        x += 1\n    return x\n      <\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"java\">\n      <pre><code class=\"language-java\">\npublic class Solution {\n  public int removeElement(int[] nums, int val) {\n    int x = 0;\n    for (int i = 0; i < nums.length; i++) {\n      if (nums[i] != val) {\n        nums[x] = nums[i];\n        x++;\n      }\n    }\n    return x;\n  }\n} \n    <\/code><\/pre>\n    <\/div>\n\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"cpp\">\n      <pre><code class=\"language-cpp\">\nclass Solution {\npublic:\n  int removeElement(vector<int>& nums, int val) {\n    int x = 0;\n    for (int i = 0; i < nums.size(); i++) {\n      if (nums[i] != val) {\n        nums[x] = nums[i];\n        x++;\n      }\n    }\n    return x;\n  }\n}; \n<\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"c\">\n      <pre><code class=\"language-c\">\nint removeElement(int* nums, int numsSize, int val) {\n  int x = 0;\n  for (int i = 0; i < numsSize; i++) {\n    if (nums[i] != val) {\n      nums[x] = nums[i];\n      x++;\n    }\n  }\n  return x;\n}\n <\/code><\/pre>\n    <\/div>\n\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"cs\">\n      <pre><code class=\"language-csharp\">\npublic class Solution {\n  public int RemoveElement(int[] nums, int val) {\n    int x = 0;\n    for (int i = 0; i < nums.Length; i++) {\n      if (nums[i] != val) {\n        nums[x] = nums[i];\n        x++;\n      }\n    }\n    return x;\n  }\n}           \n      <\/code><\/pre>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  const buttons = document.querySelectorAll(\".wp_blog_code-tab-button\");\n  const contents = document.querySelectorAll(\".wp_blog_code-tab-content\");\n\n  buttons.forEach((button) => {\n    button.addEventListener(\"click\", () => {\n      const lang = button.getAttribute(\"data-lang\");\n\n      buttons.forEach((btn) => btn.classList.remove(\"active\"));\n      contents.forEach((content) => content.classList.remove(\"active\"));\n\n      button.classList.add(\"active\");\n      document\n        .querySelector(`.wp_blog_code-tab-content[data-lang=\"${lang}\"]`)\n        .classList.add(\"active\");\n    });\n  });\n\n  const themeToggle = document.getElementById(\"blogNotesThemeToggle\");\n  const themeContainer = document.querySelector(\".wp_blog_theme\");\n\n  themeToggle.addEventListener(\"click\", () => {\n    themeContainer.classList.toggle(\"dark-mode\");\n    themeToggle.textContent =\n      themeContainer.classList.contains(\"dark-mode\") ? \"\u2600\ufe0f\" : \"\ud83c\udf19\";\n  });\n});\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>\ud83c\udf19 Problem Statement: Given an integer array nums and an integer val, remove all occurrences of val in-place. The order of the elements may be changed. Then return the number of elements in nums which are not equal to val. Consider the number of elements in nums which are not equal to val be k.<\/p>\n","protected":false},"author":108,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[210,322,260,176,175,211,811,810,174,172,311,173,284],"tags":[],"class_list":{"0":"post-7273","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-algorithms","7":"category-algorithms-and-data-structures","8":"category-c-c-plus-plus","9":"category-csharp","10":"category-cplusplus","11":"category-data-structures","12":"category-data-structures-and-algorithms","13":"category-dsa","14":"category-java","15":"category-javascript","16":"category-namastedev-community","17":"category-python","18":"category-software-engineering"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/7273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/users\/108"}],"replies":[{"embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/comments?post=7273"}],"version-history":[{"count":3,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/7273\/revisions"}],"predecessor-version":[{"id":10156,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/7273\/revisions\/10156"}],"wp:attachment":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/media?parent=7273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/categories?post=7273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/tags?post=7273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}