{"id":3173,"date":"2025-06-06T10:42:42","date_gmt":"2025-06-06T10:42:42","guid":{"rendered":"https:\/\/diznr.com\/?p=3173"},"modified":"2025-06-06T10:42:42","modified_gmt":"2025-06-06T10:42:42","slug":"greedy-algorithm-in-data-structure-with-concept-basic","status":"publish","type":"post","link":"https:\/\/www.reilsolar.com\/pdf\/greedy-algorithm-in-data-structure-with-concept-basic\/","title":{"rendered":"Greedy Algorithm in data structure [ with basic concept]"},"content":{"rendered":"<p>Greedy Algorithm in data structure [ with basic concept]<\/p>\n<p>[fvplayer id=&#8221;285&#8243;]<\/p>\n<h3 data-start=\"0\" data-end=\"42\"><strong data-start=\"2\" data-end=\"40\">Greedy Algorithm in Data Structure<\/strong><\/h3>\n<h3 data-start=\"44\" data-end=\"89\"><strong data-start=\"47\" data-end=\"87\">\u00a0Basic Concept of Greedy Algorithm<\/strong><\/h3>\n<p data-start=\"91\" data-end=\"391\">A <strong data-start=\"93\" data-end=\"113\">Greedy Algorithm<\/strong> is an approach that <strong data-start=\"134\" data-end=\"168\">makes the best possible choice<\/strong> at each step to find the <strong data-start=\"194\" data-end=\"214\">optimal solution<\/strong> for a problem. It <strong data-start=\"233\" data-end=\"253\">never looks back<\/strong> or revises previous choices. Instead, it follows a step-by-step process, always choosing the option that <strong data-start=\"359\" data-end=\"373\">seems best<\/strong> at that moment.<\/p>\n<p data-start=\"393\" data-end=\"512\"><strong data-start=\"396\" data-end=\"409\">Key Idea:<\/strong><br data-start=\"409\" data-end=\"412\" \/>\u00a0Always take the <strong data-start=\"431\" data-end=\"450\">locally optimal<\/strong> choice, hoping it leads to a <strong data-start=\"480\" data-end=\"500\">globally optimal<\/strong> solution.<\/p>\n<h3 data-start=\"519\" data-end=\"567\"><strong data-start=\"522\" data-end=\"565\">\u00a0Characteristics of Greedy Algorithms<\/strong><\/h3>\n<p data-start=\"569\" data-end=\"836\"><strong data-start=\"571\" data-end=\"597\">Locally Optimal Choice<\/strong> \u2013 Picks the best option at each step.<br data-start=\"635\" data-end=\"638\" \/><strong data-start=\"640\" data-end=\"659\">No Backtracking<\/strong> \u2013 Does not reconsider previous decisions.<br data-start=\"701\" data-end=\"704\" \/><strong data-start=\"706\" data-end=\"726\">Fast &amp; Efficient<\/strong> \u2013 Works well for specific problems.<br data-start=\"762\" data-end=\"765\" \/><strong data-start=\"767\" data-end=\"789\">Not Always Optimal<\/strong> \u2013 Sometimes fails to find the best solution.<\/p>\n<h3 data-start=\"843\" data-end=\"882\"><strong data-start=\"846\" data-end=\"880\">Steps in a Greedy Algorithm<\/strong><\/h3>\n<p data-start=\"884\" data-end=\"1116\"><strong data-start=\"888\" data-end=\"910\">Define the problem<\/strong> \u2013 Break it into steps.<br data-start=\"933\" data-end=\"936\" \/><strong data-start=\"940\" data-end=\"968\">Choose the best solution<\/strong> \u2013 Pick the most beneficial option at each step.<br data-start=\"1016\" data-end=\"1019\" \/><strong data-start=\"1023\" data-end=\"1048\">Repeat until complete<\/strong> \u2013 Continue selecting optimal choices until a solution is reached.<\/p>\n<h3 data-start=\"1123\" data-end=\"1164\"><strong data-start=\"1126\" data-end=\"1162\">\u00a0Examples of Greedy Algorithms<\/strong><\/h3>\n<h3 data-start=\"1166\" data-end=\"1199\"><strong data-start=\"1170\" data-end=\"1197\">\u00a0Coin Change Problem<\/strong><\/h3>\n<p data-start=\"1200\" data-end=\"1274\"><strong data-start=\"1203\" data-end=\"1215\">Problem:<\/strong> Find the minimum number of coins to make a given amount.<\/p>\n<p data-start=\"1276\" data-end=\"1448\"><strong data-start=\"1279\" data-end=\"1291\">Example:<\/strong> If coins available are <strong data-start=\"1315\" data-end=\"1334\">\u20b91, \u20b92, \u20b95, \u20b910<\/strong>, and the target amount is <strong data-start=\"1361\" data-end=\"1368\">\u20b918<\/strong>, the greedy approach picks:<br data-start=\"1396\" data-end=\"1399\" \/><strong data-start=\"1401\" data-end=\"1423\">\u20b910 \u2192 \u20b95 \u2192 \u20b92 \u2192 \u20b91<\/strong> \u2192 (Total: <strong data-start=\"1434\" data-end=\"1445\">4 coins<\/strong>)<\/p>\n<p data-start=\"1450\" data-end=\"1540\"><strong data-start=\"1453\" data-end=\"1468\">Limitation:<\/strong> Doesn&#8217;t work for all denominations (e.g., {\u20b91, \u20b93, \u20b94}, target = \u20b96).<\/p>\n<h3 data-start=\"1547\" data-end=\"1588\"><strong data-start=\"1551\" data-end=\"1586\">\u00a0Fractional Knapsack Problem<\/strong><\/h3>\n<p data-start=\"1589\" data-end=\"1689\"><strong data-start=\"1592\" data-end=\"1604\">Problem:<\/strong> Given items with values &amp; weights, maximize the total value within a weight limit.<\/p>\n<p data-start=\"1691\" data-end=\"1772\"><strong data-start=\"1694\" data-end=\"1707\">Solution:<\/strong> Choose items with the <strong data-start=\"1730\" data-end=\"1763\">highest value-to-weight ratio<\/strong> first.<\/p>\n<p data-start=\"1774\" data-end=\"1924\"><strong data-start=\"1776\" data-end=\"1815\">Works well for fractional selection<\/strong> (items can be broken into parts).<br data-start=\"1849\" data-end=\"1852\" \/><strong data-start=\"1855\" data-end=\"1892\">Fails in the 0\/1 Knapsack Problem<\/strong> (where items can\u2019t be split).<\/p>\n<h3 data-start=\"1931\" data-end=\"1971\"><strong data-start=\"1935\" data-end=\"1969\">\u00a0Activity Selection Problem<\/strong><\/h3>\n<p data-start=\"1972\" data-end=\"2106\"><strong data-start=\"1975\" data-end=\"1987\">Problem:<\/strong> Select the <strong data-start=\"1999\" data-end=\"2047\">maximum number of non-overlapping activities<\/strong> from a given set of activities with start and end times.<\/p>\n<p data-start=\"2108\" data-end=\"2239\"><strong data-start=\"2111\" data-end=\"2124\">Solution:<\/strong><br data-start=\"2124\" data-end=\"2127\" \/>\u00a0Sort activities by <strong data-start=\"2148\" data-end=\"2160\">end time<\/strong>.<br data-start=\"2161\" data-end=\"2164\" \/>\u00a0Always choose the <strong data-start=\"2184\" data-end=\"2206\">earliest finishing<\/strong> activity that doesn\u2019t overlap.<\/p>\n<p data-start=\"2241\" data-end=\"2291\"><strong data-start=\"2243\" data-end=\"2289\">Greedy approach gives an optimal solution.<\/strong><\/p>\n<h3 data-start=\"2298\" data-end=\"2345\"><strong data-start=\"2302\" data-end=\"2343\">\u00a0Huffman Coding (Data Compression)<\/strong><\/h3>\n<p data-start=\"2346\" data-end=\"2428\"><strong data-start=\"2349\" data-end=\"2361\">Problem:<\/strong> Reduce file size by using shorter codes for frequent characters.<\/p>\n<p data-start=\"2430\" data-end=\"2608\"><strong data-start=\"2433\" data-end=\"2446\">Solution:<\/strong><br data-start=\"2446\" data-end=\"2449\" \/>\u00a0Create a <strong data-start=\"2460\" data-end=\"2475\">binary tree<\/strong> where the most frequent characters have shorter codes.<br data-start=\"2530\" data-end=\"2533\" \/>\u00a0Uses a <strong data-start=\"2542\" data-end=\"2560\">priority queue<\/strong> to select the smallest elements at each step.<\/p>\n<p data-start=\"2610\" data-end=\"2663\"><strong data-start=\"2612\" data-end=\"2661\">Used in ZIP file compression &amp; text encoding.<\/strong><\/p>\n<h3 data-start=\"2670\" data-end=\"2712\"><strong data-start=\"2673\" data-end=\"2710\">\u00a0When to Use Greedy Algorithms?<\/strong><\/h3>\n<p data-start=\"2714\" data-end=\"3043\"><strong data-start=\"2716\" data-end=\"2769\">When the problem has the &#8220;Greedy Choice Property&#8221;<\/strong> \u2192 Making a local optimal choice leads to a global optimum.<br data-start=\"2828\" data-end=\"2831\" \/><strong data-start=\"2833\" data-end=\"2880\">When the problem has &#8220;Optimal Substructure&#8221;<\/strong> \u2192 The optimal solution contains optimal sub-solutions.<br data-start=\"2935\" data-end=\"2938\" \/><strong data-start=\"2940\" data-end=\"2972\">When efficiency is important<\/strong> \u2192 Greedy algorithms are usually <strong data-start=\"3005\" data-end=\"3015\">faster<\/strong> than dynamic programming.<\/p>\n<h3 data-start=\"3050\" data-end=\"3098\"><strong data-start=\"3053\" data-end=\"3096\">\u00a0Time Complexity of Greedy Algorithms<\/strong><\/h3>\n<p data-start=\"3100\" data-end=\"3180\"><strong data-start=\"3102\" data-end=\"3133\">Usually O(n log n) or O(n),<\/strong> depending on sorting &amp; selection operations.<\/p>\n<div class=\"overflow-x-auto contain-inline-size\">\n<table data-start=\"3182\" data-end=\"3369\">\n<thead data-start=\"3182\" data-end=\"3211\">\n<tr data-start=\"3182\" data-end=\"3211\">\n<th data-start=\"3182\" data-end=\"3192\">Problem<\/th>\n<th data-start=\"3192\" data-end=\"3211\">Time Complexity<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"3240\" data-end=\"3369\">\n<tr data-start=\"3240\" data-end=\"3262\">\n<td>Coin Change<\/td>\n<td>O(n)<\/td>\n<\/tr>\n<tr data-start=\"3263\" data-end=\"3301\">\n<td>Knapsack (Fractional)<\/td>\n<td>O(n log n)<\/td>\n<\/tr>\n<tr data-start=\"3302\" data-end=\"3337\">\n<td>Activity Selection<\/td>\n<td>O(n log n)<\/td>\n<\/tr>\n<tr data-start=\"3338\" data-end=\"3369\">\n<td>Huffman Coding<\/td>\n<td>O(n log n)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3 data-start=\"3376\" data-end=\"3398\"><strong data-start=\"3379\" data-end=\"3396\">\u00a0Conclusion<\/strong><\/h3>\n<p data-start=\"3399\" data-end=\"3618\">Greedy algorithms are <strong data-start=\"3421\" data-end=\"3452\">simple, fast, and effective<\/strong> for problems where <strong data-start=\"3472\" data-end=\"3520\">local choices lead to the best global result<\/strong>. However, they <strong data-start=\"3536\" data-end=\"3583\">don\u2019t always guarantee the optimal solution<\/strong>, so they must be used carefully.<\/p>\n<p data-start=\"3620\" data-end=\"3784\"><strong data-start=\"3623\" data-end=\"3654\">Best used in problems like:<\/strong> Huffman coding, activity selection, fractional knapsack.<br data-start=\"3711\" data-end=\"3714\" \/><strong data-start=\"3717\" data-end=\"3744\">Fails in problems like:<\/strong> 0\/1 knapsack, some coin change cases.<\/p>\n<p data-start=\"3786\" data-end=\"3865\" data-is-last-node=\"\" data-is-only-node=\"\">Would you like <strong data-start=\"3801\" data-end=\"3834\">examples in code (Python\/C++)<\/strong> for better understanding?<\/p>\n<p data-start=\"0\" data-end=\"129\">Here&#8217;s a clear explanation of the <strong data-start=\"34\" data-end=\"54\">Greedy Algorithm<\/strong> in data structures with its <strong data-start=\"83\" data-end=\"100\">basic concept<\/strong>, examples, and applications:<\/p>\n<hr data-start=\"131\" data-end=\"134\" \/>\n<h2 data-start=\"136\" data-end=\"169\">\ud83d\udd39 What is a Greedy Algorithm?<\/h2>\n<p data-start=\"171\" data-end=\"343\">A <strong data-start=\"173\" data-end=\"193\">greedy algorithm<\/strong> is an approach for solving problems by <strong data-start=\"233\" data-end=\"281\">making the best possible choice at each step<\/strong> with the hope that this leads to an overall optimal solution.<\/p>\n<blockquote data-start=\"345\" data-end=\"451\">\n<p data-start=\"347\" data-end=\"451\">\ud83d\udccc <strong data-start=\"350\" data-end=\"363\">Key idea:<\/strong> <em data-start=\"364\" data-end=\"451\">Take the best choice available right now, without thinking about future consequences.<\/em><\/p>\n<\/blockquote>\n<hr data-start=\"453\" data-end=\"456\" \/>\n<h2 data-start=\"458\" data-end=\"502\">\ud83d\udd39 Basic Properties of Greedy Algorithms:<\/h2>\n<ol data-start=\"504\" data-end=\"713\">\n<li data-start=\"504\" data-end=\"599\">\n<p data-start=\"507\" data-end=\"599\"><strong data-start=\"507\" data-end=\"533\">Greedy Choice Property<\/strong> \u2013 A global optimum can be arrived at by choosing a local optimum.<\/p>\n<\/li>\n<li data-start=\"600\" data-end=\"713\">\n<p data-start=\"603\" data-end=\"713\"><strong data-start=\"603\" data-end=\"627\">Optimal Substructure<\/strong> \u2013 A problem has an optimal solution composed of optimal solutions to its subproblems.<\/p>\n<\/li>\n<\/ol>\n<hr data-start=\"715\" data-end=\"718\" \/>\n<h2 data-start=\"720\" data-end=\"754\">\ud83d\udd39 Steps in a Greedy Algorithm:<\/h2>\n<ol data-start=\"756\" data-end=\"920\">\n<li data-start=\"756\" data-end=\"798\">\n<p data-start=\"759\" data-end=\"798\">Sort or prioritize choices (if needed).<\/p>\n<\/li>\n<li data-start=\"799\" data-end=\"849\">\n<p data-start=\"802\" data-end=\"849\">At each step, choose the best available option.<\/p>\n<\/li>\n<li data-start=\"850\" data-end=\"888\">\n<p data-start=\"853\" data-end=\"888\">Repeat until the problem is solved.<\/p>\n<\/li>\n<li data-start=\"889\" data-end=\"920\">\n<p data-start=\"892\" data-end=\"920\">No backtracking or revision.<\/p>\n<\/li>\n<\/ol>\n<hr data-start=\"922\" data-end=\"925\" \/>\n<h2 data-start=\"927\" data-end=\"967\">\ud83d\udd39 Example 1: <strong data-start=\"944\" data-end=\"967\">Coin Change Problem<\/strong><\/h2>\n<p data-start=\"969\" data-end=\"1097\"><strong data-start=\"969\" data-end=\"981\">Problem:<\/strong> You have coins of denominations \u20b91, \u20b92, \u20b95, \u20b910, and \u20b920. You want to make \u20b943 using the <strong data-start=\"1071\" data-end=\"1096\">least number of coins<\/strong>.<\/p>\n<p data-start=\"1099\" data-end=\"1119\"><strong data-start=\"1099\" data-end=\"1119\">Greedy Strategy:<\/strong><\/p>\n<ul data-start=\"1120\" data-end=\"1217\">\n<li data-start=\"1120\" data-end=\"1177\">\n<p data-start=\"1122\" data-end=\"1177\">Pick the largest denomination coin &lt;= remaining amount.<\/p>\n<\/li>\n<li data-start=\"1178\" data-end=\"1217\">\n<p data-start=\"1180\" data-end=\"1217\">Repeat until the amount becomes zero.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1219\" data-end=\"1232\"><strong data-start=\"1219\" data-end=\"1232\">Solution:<\/strong><\/p>\n<ul data-start=\"1233\" data-end=\"1300\">\n<li data-start=\"1233\" data-end=\"1250\">\n<p data-start=\"1235\" data-end=\"1250\">\u20b920 \u2192 2 coins<\/p>\n<\/li>\n<li data-start=\"1251\" data-end=\"1266\">\n<p data-start=\"1253\" data-end=\"1266\">\u20b92 \u2192 1 coin<\/p>\n<\/li>\n<li data-start=\"1267\" data-end=\"1300\">\n<p data-start=\"1269\" data-end=\"1300\">\u20b91 \u2192 1 coin<br data-start=\"1280\" data-end=\"1283\" \/>\u2705 Total coins = 5<\/p>\n<\/li>\n<\/ul>\n<blockquote data-start=\"1302\" data-end=\"1424\">\n<p data-start=\"1304\" data-end=\"1424\">\u26a0\ufe0f Note: This works <strong data-start=\"1324\" data-end=\"1359\">only with certain denominations<\/strong>. For arbitrary coin values, greedy may not give optimal results.<\/p>\n<\/blockquote>\n<hr data-start=\"1426\" data-end=\"1429\" \/>\n<h2 data-start=\"1431\" data-end=\"1478\">\ud83d\udd39 Example 2: <strong data-start=\"1448\" data-end=\"1478\">Activity Selection Problem<\/strong><\/h2>\n<p data-start=\"1480\" data-end=\"1599\"><strong data-start=\"1480\" data-end=\"1492\">Problem:<\/strong> Given <code data-start=\"1499\" data-end=\"1502\">n<\/code> activities with start and end times, choose the maximum number of activities that don&#8217;t overlap.<\/p>\n<p data-start=\"1601\" data-end=\"1621\"><strong data-start=\"1601\" data-end=\"1621\">Greedy Strategy:<\/strong><\/p>\n<ul data-start=\"1622\" data-end=\"1740\">\n<li data-start=\"1622\" data-end=\"1668\">\n<p data-start=\"1624\" data-end=\"1668\">Sort activities by <strong data-start=\"1643\" data-end=\"1667\">earliest finish time<\/strong>.<\/p>\n<\/li>\n<li data-start=\"1669\" data-end=\"1740\">\n<p data-start=\"1671\" data-end=\"1740\">Always pick the next activity that starts after the current one ends.<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"1742\" data-end=\"1745\" \/>\n<h2 data-start=\"1747\" data-end=\"1773\">\ud83d\udd39 Common Applications:<\/h2>\n<ul data-start=\"1775\" data-end=\"1968\">\n<li data-start=\"1775\" data-end=\"1820\">\n<p data-start=\"1777\" data-end=\"1820\">Kruskal\u2019s Algorithm (Minimum Spanning Tree)<\/p>\n<\/li>\n<li data-start=\"1821\" data-end=\"1863\">\n<p data-start=\"1823\" data-end=\"1863\">Prim\u2019s Algorithm (Minimum Spanning Tree)<\/p>\n<\/li>\n<li data-start=\"1864\" data-end=\"1902\">\n<p data-start=\"1866\" data-end=\"1902\">Dijkstra\u2019s Algorithm (Shortest Path)<\/p>\n<\/li>\n<li data-start=\"1903\" data-end=\"1938\">\n<p data-start=\"1905\" data-end=\"1938\">Huffman Coding (Data Compression)<\/p>\n<\/li>\n<li data-start=\"1939\" data-end=\"1968\">\n<p data-start=\"1941\" data-end=\"1968\">Fractional Knapsack Problem<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"1970\" data-end=\"1973\" \/>\n<h2 data-start=\"1975\" data-end=\"1992\">\ud83d\udd39 Advantages:<\/h2>\n<ul data-start=\"1993\" data-end=\"2066\">\n<li data-start=\"1993\" data-end=\"2023\">\n<p data-start=\"1995\" data-end=\"2023\">Fast and simple to implement<\/p>\n<\/li>\n<li data-start=\"2024\" data-end=\"2066\">\n<p data-start=\"2026\" data-end=\"2066\">Efficient for many optimization problems<\/p>\n<\/li>\n<\/ul>\n<h2 data-start=\"2068\" data-end=\"2088\">\ud83d\udd39 Disadvantages:<\/h2>\n<ul data-start=\"2089\" data-end=\"2218\">\n<li data-start=\"2089\" data-end=\"2144\">\n<p data-start=\"2091\" data-end=\"2144\">Doesn\u2019t always give the <strong data-start=\"2115\" data-end=\"2135\">globally optimal<\/strong> solution<\/p>\n<\/li>\n<li data-start=\"2145\" data-end=\"2218\">\n<p data-start=\"2147\" data-end=\"2218\">Not suitable for problems needing <strong data-start=\"2181\" data-end=\"2218\">backtracking or exhaustive search<\/strong><\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"2220\" data-end=\"2223\" \/>\n<p data-start=\"2225\" data-end=\"2327\" data-is-last-node=\"\" data-is-only-node=\"\">Would you like a <span class=\"decoration-token-text-secondary hover:text-token-text-secondary cursor-pointer underline decoration-dotted decoration-[12%] underline-offset-4 transition-colors duration-200 ease-in-out\">code example<\/span>, <span class=\"decoration-token-text-secondary hover:text-token-text-secondary cursor-pointer underline decoration-dotted decoration-[12%] underline-offset-4 transition-colors duration-200 ease-in-out\">flowchart<\/span>, or <span class=\"decoration-token-text-secondary hover:text-token-text-secondary cursor-pointer underline decoration-dotted decoration-[12%] underline-offset-4 transition-colors duration-200 ease-in-out\">visual explanation<\/span> for a greedy algorithm?<\/p>\n<h3 data-start=\"2225\" data-end=\"2327\"><a href=\"https:\/\/www.jntua.ac.in\/gate-online-classes\/registration\/downloads\/material\/a159239288590.pdf\" target=\"_blank\" rel=\"noopener\">Greedy Algorithm in data structure [ with basic concept]<\/a><\/h3>\n<h3 class=\"LC20lb MBeuO DKV0Md\"><a href=\"https:\/\/nriit.edu.in\/files\/IT-Notes\/DAA\/DAA-Unit-III.pdf\" target=\"_blank\" rel=\"noopener\">UNIT-II1 GREEDY METHOD<\/a><\/h3>\n<h3 class=\"LC20lb MBeuO DKV0Md\"><a href=\"https:\/\/web.stanford.edu\/class\/archive\/cs\/cs161\/cs161.1138\/lectures\/13\/Small13.pdf\" target=\"_blank\" rel=\"noopener\">Greedy Algorithms<\/a><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Greedy Algorithm in data structure [ with basic concept] [fvplayer id=&#8221;285&#8243;] Greedy Algorithm in Data Structure \u00a0Basic Concept of Greedy Algorithm A Greedy Algorithm is an approach that makes the best possible choice at each step to find the optimal solution for a problem. It never looks back or revises previous choices. Instead, it follows [&hellip;]<\/p>\n","protected":false},"author":66,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1640],"tags":[],"class_list":["post-3173","post","type-post","status-publish","format-standard","hentry","category-data-structure"],"_links":{"self":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts\/3173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/comments?post=3173"}],"version-history":[{"count":0,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts\/3173\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/media?parent=3173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/categories?post=3173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/tags?post=3173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}