{"id":10144,"date":"2025-09-27T16:07:57","date_gmt":"2025-09-27T10:37:57","guid":{"rendered":"https:\/\/namastedev.com\/blog\/?p=10144"},"modified":"2025-09-27T17:00:29","modified_gmt":"2025-09-27T11:30:29","slug":"coin-change-bottom-up-iterative","status":"publish","type":"post","link":"https:\/\/namastedev.com\/blog\/coin-change-bottom-up-iterative\/","title":{"rendered":"Coin Change Bottom Up Iterative"},"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>\n        You are given an integer array <code>coins<\/code> representing coins of different denominations and an integer <code>amount<\/code> representing a total amount of money.\n    <\/p>\n\n    <p>\n        Return <i>the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return <code>-1<\/code>.<\/i>\n    <\/p>\n\n    <p>\n        You may assume that you have an infinite number of each kind of coin.\n    <\/p>\n\n\n    <h3>Example 1:<\/h2>\n    <p><strong>Input:<\/strong> coins = [1, 2, 5], amount = 11<\/p>\n    <p><strong>Output:<\/strong> 3<\/p>\n    <p><strong>Explanation:<\/strong>  11 = 5 + 5 + 1    <\/p>\n\n    <h3>Example 2:<\/h2>\n    <p><strong>Input:<\/strong> coins = [2], amount = 3<\/p>\n    <p><strong>Output:<\/strong> -1<\/p>\n\n    <h3>Example 3:<\/h3>\n    <p><strong>Input:<\/strong> coins = [1], amount = 0<\/p>\n    <p><strong>Output:<\/strong> 0<\/p>\n\n    <h3>Constraints<\/h3>\n    <ul>\n       <li><code>1 <= coins.length <= 12<\/code><\/li>\n       <li><code>1 <= coins[i] <= 2<sup>31<\/sup> - 1<\/code><\/li>\n       <li><code>0 <= amount <= 10<sup>4<\/sup><\/code><\/li>\n    <\/ul>\n    \n<h2>Approach:<\/h2>\n<ul>\n    <li><code>dp[x] = minimum coins<\/code> required to make amount <code>x<\/code>.<\/li>\n    <li>Initialize <code>dp<\/code> with <code>Infinity<\/code> (unreachable state) except <code>dp[0] = 0<\/code> (0 coins for amount 0).<\/li>\n    <li><strong>Transition:<\/strong>\n    <ul>\n        <li>For each amount rem from 1 \u2192 amount:\n            <ul>\n                <li>For each coin <code>c<\/code>: If <code>rem - c \u2265 0<\/code>, then:<\/li>\n                <li><code>dp[rem] = min(dp[rem], 1 + dp[rem - c])<\/code><\/li>\n            <\/ul>\n        <\/li>\n    <\/ul>\n    <\/li>\n\n    <li>If <strong>dp[amount] <\/strong>is still <code>Infinity, return -1<\/code> (not possible).<\/li>\n    <li>Otherwise, <code>return dp[amount]<\/code>.<\/li>\n<\/ul>\n\n    <h2>Time & Space Complexity:<\/h2>\n    <p><strong>Time Complexity:<\/strong> <code>O(n x amount)<\/code><\/p>\n    <p><strong>Space Complexity:<\/strong> <code>O(amount)<\/code><\/p>\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>coins = [1, 2, 5], amount = 11<\/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);\">\n\nStep 0: Start Function coinChange([1,2,5], 11)\nn = 3\ndp = [0, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e]\n\nrem = 1:\n- coin=1 \u2192 remainingAmount=0 \u2192 dp[1] = min(\u221e, 1+dp[0]) = 1\n- coin=2 \u2192 remainingAmount=-1 (skip)\n- coin=5 \u2192 remainingAmount=-4 (skip)\ndp = [0, 1, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e]\n\nrem = 2:\n- coin=1 \u2192 remAmt=1 \u2192 dp[2] = min(\u221e, 1+dp[1]=2) = 2\n- coin=2 \u2192 remAmt=0 \u2192 dp[2] = min(2, 1+dp[0]=1) = 1\n- coin=5 \u2192 remAmt=-3 (skip)\ndp = [0, 1, 1, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e]\n\nrem = 3:\n- coin=1 \u2192 remAmt=2 \u2192 dp[3] = min(\u221e, 1+dp[2]=2) = 2\n- coin=2 \u2192 remAmt=1 \u2192 dp[3] = min(2, 1+dp[1]=2) = 2\n- coin=5 \u2192 remAmt=-2 (skip)\ndp = [0, 1, 1, 2, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e]\n\nrem = 4:\n- coin=1 \u2192 remAmt=3 \u2192 dp[4] = min(\u221e, 1+dp[3]=3) = 3\n- coin=2 \u2192 remAmt=2 \u2192 dp[4] = min(3, 1+dp[2]=2) = 2\n- coin=5 \u2192 remAmt=-1 (skip)\ndp = [0, 1, 1, 2, 2, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e]\n\nrem = 5:\n- coin=1 \u2192 remAmt=4 \u2192 dp[5] = min(\u221e, 1+dp[4]=3) = 3\n- coin=2 \u2192 remAmt=3 \u2192 dp[5] = min(3, 1+dp[3]=3) = 3\n- coin=5 \u2192 remAmt=0 \u2192 dp[5] = min(3, 1+dp[0]=1) = 1\ndp = [0, 1, 1, 2, 2, 1, \u221e, \u221e, \u221e, \u221e, \u221e, \u221e]\n\nrem = 6:\n- coin=1 \u2192 remAmt=5 \u2192 dp[6] = 1+dp[5]=2\n- coin=2 \u2192 remAmt=4 \u2192 dp[6] = min(2, 1+dp[4]=3) = 2\n- coin=5 \u2192 remAmt=1 \u2192 dp[6] = min(2, 1+dp[1]=2) = 2\ndp = [0, 1, 1, 2, 2, 1, 2, \u221e, \u221e, \u221e, \u221e, \u221e]\n\nrem = 7:\n- coin=1 \u2192 remAmt=6 \u2192 dp[7] = 1+dp[6]=3\n- coin=2 \u2192 remAmt=5 \u2192 dp[7] = min(3, 1+dp[5]=2) = 2\n- coin=5 \u2192 remAmt=2 \u2192 dp[7] = min(2, 1+dp[2]=2) = 2\ndp = [0, 1, 1, 2, 2, 1, 2, 2, \u221e, \u221e, \u221e, \u221e]\n\nrem = 8:\n- coin=1 \u2192 remAmt=7 \u2192 dp[8] = 1+dp[7]=3\n- coin=2 \u2192 remAmt=6 \u2192 dp[8] = min(3, 1+dp[6]=3) = 3\n- coin=5 \u2192 remAmt=3 \u2192 dp[8] = min(3, 1+dp[3]=3) = 3\ndp = [0, 1, 1, 2, 2, 1, 2, 2, 3, \u221e, \u221e, \u221e]\n\nrem = 9:\n- coin=1 \u2192 remAmt=8 \u2192 dp[9] = 1+dp[8]=4\n- coin=2 \u2192 remAmt=7 \u2192 dp[9] = min(4, 1+dp[7]=3) = 3\n- coin=5 \u2192 remAmt=4 \u2192 dp[9] = min(3, 1+dp[4]=3) = 3\ndp = [0, 1, 1, 2, 2, 1, 2, 2, 3, 3, \u221e, \u221e]\n\nrem = 10:\n- coin=1 \u2192 remAmt=9 \u2192 dp[10] = 1+dp[9]=4\n- coin=2 \u2192 remAmt=8 \u2192 dp[10] = min(4, 1+dp[8]=4) = 4\n- coin=5 \u2192 remAmt=5 \u2192 dp[10] = min(4, 1+dp[5]=2) = 2\ndp = [0, 1, 1, 2, 2, 1, 2, 2, 3, 3, 2, \u221e]\n\nrem = 11:\n- coin=1 \u2192 remAmt=10 \u2192 dp[11] = 1+dp[10]=3\n- coin=2 \u2192 remAmt=9 \u2192 dp[11] = min(3, 1+dp[9]=4) = 3\n- coin=5 \u2192 remAmt=6 \u2192 dp[11] = min(3, 1+dp[6]=3) = 3\ndp = [0, 1, 1, 2, 2, 1, 2, 2, 3, 3, 2, 3]\n\nStep 3: End\ndp[11] = 3\nReturn 3\n  <\/pre> \n  \n  <p><strong>Output:<\/strong> <code>3<\/code><\/p> \n<\/div>\n\n        <h2>Visualisation:<\/h2>\n        <img decoding=\"async\" src=\"https:\/\/namastedev.com\/blog\/wp-content\/uploads\/2025\/09\/Screenshot-2025-09-26-at-2.18.00\u202fPM.png\" alt=\"Stocks\" \/>\n   \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 coinChange = function(coins, amount) {\n    let n = coins.length;\n    let dp = new Array(amount + 1).fill(Infinity);\n    dp[0] = 0;\n\n    for (let rem = 1; rem <= amount; rem++) {\n        for (let j = 0; j < n; j++) {\n            let remainingAmount = rem - coins[j];\n            if (remainingAmount >= 0) {\n                dp[rem] = Math.min(dp[rem], 1 + dp[remainingAmount]);\n            }\n        }\n    }\n    return dp[amount] === Infinity ? -1 : dp[amount];\n};\n<\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"py\">\n      <pre><code class=\"language-python\">\ndef coinChange(coins, amount):\n    n = len(coins)\n    INF = float('inf')\n    dp = [INF] * (amount + 1)\n    dp[0] = 0\n\n    for rem in range(1, amount + 1):\n        for j in range(n):\n            remainingAmount = rem - coins[j]\n            if remainingAmount >= 0:\n                dp[rem] = min(dp[rem], 1 + dp[remainingAmount])\n\n    return -1 if dp[amount] == INF else dp[amount]\n      <\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"java\">\n      <pre><code class=\"language-java\">\nimport java.util.Arrays;\n\npublic class Solution {\n    public int coinChange(int[] coins, int amount) {\n        int n = coins.length;\n        final int INF = Integer.MAX_VALUE \/ 2; \/\/ avoid overflow\n        int[] dp = new int[amount + 1];\n        Arrays.fill(dp, INF);\n        dp[0] = 0;\n\n        for (int rem = 1; rem <= amount; rem++) {\n            for (int j = 0; j < n; j++) {\n                int remainingAmount = rem - coins[j];\n                if (remainingAmount >= 0) {\n                    dp[rem] = Math.min(dp[rem], 1 + dp[remainingAmount]);\n                }\n            }\n        }\n        return dp[amount] >= INF ? -1 : dp[amount];\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\">\n#include &lt;vector&gt;\n#include &lt;algorithm&gt;\n#include &lt;limits&gt;\n\nint coinChange(const std::vector<int>& coins, int amount) {\n    int n = coins.size();\n    const int INF = std::numeric_limits<int>::max() \/ 2; \/\/ avoid overflow\n    std::vector<int> dp(amount + 1, INF);\n    dp[0] = 0;\n\n    for (int rem = 1; rem <= amount; ++rem) {\n        for (int j = 0; j < n; ++j) {\n            int remainingAmount = rem - coins[j];\n            if (remainingAmount >= 0) {\n                dp[rem] = std::min(dp[rem], 1 + dp[remainingAmount]);\n            }\n        }\n    }\n    return dp[amount] >= INF ? -1 : dp[amount];\n}\n<\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"c\">\n      <pre><code class=\"language-c\">\n#include &lt;stdlib.h&gt;\n#include &lt;limits.h&gt;\n\nint coinChange(int* coins, int n, int amount) {\n    int INF = INT_MAX \/ 2; \/\/ avoid overflow when adding 1\n    int* dp = (int*)malloc((amount + 1) * sizeof(int));\n    if (!dp) return -1; \/\/ allocation failed\n    for (int i = 0; i <= amount; ++i) dp[i] = INF;\n    dp[0] = 0;\n    for (int rem = 1; rem <= amount; ++rem) {\n        for (int j = 0; j < n; ++j) {\n            int remainingAmount = rem - coins[j];\n            if (remainingAmount >= 0) {\n                int candidate = 1 + dp[remainingAmount];\n                if (candidate < dp[rem]) dp[rem] = candidate;\n            }\n        }\n    }\n    int result = (dp[amount] >= INF) ? -1 : dp[amount];\n    free(dp);\n    return result;\n}\n <\/code><\/pre>\n    <\/div>\n\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"cs\">\n      <pre><code class=\"language-csharp\">\nusing System;\n\npublic class Solution {\n    public int CoinChange(int[] coins, int amount) {\n        int n = coins.Length;\n        int INF = int.MaxValue \/ 2; \/\/ avoid overflow\n        int[] dp = new int[amount + 1];\n        for (int i = 0; i <= amount; i++) dp[i] = INF;\n        dp[0] = 0;\n\n        for (int rem = 1; rem <= amount; rem++) {\n            for (int j = 0; j < n; j++) {\n                int remainingAmount = rem - coins[j];\n                if (remainingAmount >= 0) {\n                    dp[rem] = Math.Min(dp[rem], 1 + dp[remainingAmount]);\n                }\n            }\n        }\n        return dp[amount] >= INF ? -1 : dp[amount];\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: You are given an integer array coins representing coins of different denominations and an integer amount representing a total amount of money. Return the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return<\/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,176,175,211,811,810,174,172,173],"tags":[],"class_list":["post-10144","post","type-post","status-publish","format-standard","category-algorithms","category-algorithms-and-data-structures","category-csharp","category-cplusplus","category-data-structures","category-data-structures-and-algorithms","category-dsa","category-java","category-javascript","category-python"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/10144","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=10144"}],"version-history":[{"count":1,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/10144\/revisions"}],"predecessor-version":[{"id":10145,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/10144\/revisions\/10145"}],"wp:attachment":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/media?parent=10144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/categories?post=10144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/tags?post=10144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}