{"id":1514,"date":"2020-07-01T09:31:32","date_gmt":"2020-07-01T09:31:32","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1514"},"modified":"2022-03-30T13:21:28","modified_gmt":"2022-03-30T13:21:28","slug":"missing-in-ap","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/","title":{"rendered":"Missing in AP"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png\" alt=\"\" \/><\/p>\n<h3>CONCEPTS USED:<\/h3>\n<blockquote>\n<p>Binary Search<\/p>\n<\/blockquote>\n<h3>DIFFICULTY LEVEL:<\/h3>\n<blockquote>\n<p>Medium<\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT<code>(<\/code>SIMPLIFIED<code>)<\/code>:<\/h3>\n<blockquote>\n<p>Given an array <code>A<\/code>, such that it is arranged in an <code>Arithmetic Progression<\/code>, but one element from this A.P. is missing, find it.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/searching\/MISSAP\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h4>For Example:<\/h4>\n<pre><code>Input : A = [3, 6, 12, 15, 18]\n\nOutput : 9\n\nExplanation : In the given A.P. series starting with initial element 3 and Common Difference 3, 9 is the element that is missing between 6 and 12.<\/code><\/pre>\n<p><strong><em>Can we use <code>Binary Search<\/code> here ?<\/em><\/strong>  <\/p>\n<blockquote>\n<p>Given that the array forms an A.P. this implies that it is either sorted in ascending or descending order and we need to search a missing number in it. <code>Binary Search<\/code> would be an efficient alternative here.<\/p>\n<\/blockquote>\n<h3>OBSERVATION:<\/h3>\n<blockquote>\n<p>Every element in an A.P. can be calculated using its position i.e.<br \/>\n<code>arr[i] = arr[0] + i*diff<\/code><\/p>\n<\/blockquote>\n<h3>SOLVING APPROACH:<\/h3>\n<p><strong><em>First check for corner cases :<\/em><\/strong>  <\/p>\n<blockquote>\n<p>First check whether the missing element lies near one of the corner points by taking out difference of first and second elements and difference of last and second last elements and comparing these differences with each other. If they are not equal, this implies that the missing number lies near corner points and we can easily compute the missing number.<br \/>\nElse we will follow below approach &#8211; <\/p>\n<ol>\n<li>\n<p>The idea is to use <code>Binary Search<\/code>.  <\/p>\n<\/li>\n<li>\n<p>We initialize <code>low<\/code> and <code>high<\/code> as <code>0<\/code> and <code>n-1<\/code>, and calculate <code>mid<\/code> as<br \/>\n<code>mid = low + (high - low)\/2<\/code><\/p>\n<\/li>\n<li>\n<p>If the element present at <code>mid<\/code> matches the calculated value at <code>mid<\/code>, this implies that elements at the lower half are all positioned correctly, so we search in the right half.<\/p>\n<\/li>\n<li>\n<p>else we store the calculated value and search in the lower half till<br \/>\n<code>low 6. In this way, we will have the last value that was not at its right position stored with us which will be our <\/code>result`.<\/p>\n<\/li>\n<\/ol>\n<\/blockquote>\n<h3>SOLUTIONS:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_1519 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_1519 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_1519 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1519 .wpsm_nav-tabs > li.active > a, #tab_container_1519 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1519 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_1519 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_1519 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1519 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1519 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1519 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1519 .wpsm_nav-tabs > li > a:hover , #tab_container_1519 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_1519 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_1519 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_1519 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_1519 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_1519 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_1519 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_1519 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1519 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_1519 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1519 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_1519 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_1519\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1519\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1519_1\" aria-controls=\"tabs_desc_1519_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1519_2\" aria-controls=\"tabs_desc_1519_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1519_3\" aria-controls=\"tabs_desc_1519_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_1519\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_1519_1\">\r\n\t\t\t\t\t\t\t\t\r\n\r\n<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\n#include &lt;stdio.h&gt;\r\n\r\n#include &lt;stdio.h&gt;\r\n\r\nint MissingAP(int *arr, int low, int high, int diff, int missing_ele){\r\n  if(low &lt;= high){\r\n    int mid = low + (high - low)\/2;\r\n\r\n    \/* if curr element is at its right place in AP\r\n    we will search in the lower half then *\/\r\n    if(arr[mid] == arr[0] + mid*diff)\r\n      return MissingAP(arr, mid+1, high, diff, missing_ele);\r\n\r\n    \/* else save the value that should be here and further \r\n    search in the lower half *\/\r\n    else{\r\n      missing_ele = arr[0] + mid*diff;\r\n      return MissingAP(arr, low, mid - 1, diff, missing_ele);\r\n    }\r\n  }\r\n  \/\/finally return the ele that was not found on its place\r\n  return missing_ele;\r\n}\r\n\r\nint main()\r\n{\r\n  int t; scanf(\"%d\", &amp;t);\r\n  while(t--){\r\n    int n; scanf(\"%d\", &amp;n);\r\n    int arr[n];\r\n    for(int i=0; i&lt;n; i++)\r\n      scanf(\"%d\", &amp;arr[i]);\r\n\r\n    \/\/check if missing element lies at one of the ends or close to one of the ends  \r\n    int left_diff = arr[1] - arr[0];\r\n    int right_diff = arr[n-1] - arr[n-2];\r\n    int diff, missing_ele;\r\n\r\n    \/\/if left == right, missing element lies inside of the array\r\n    if(left_diff == right_diff){\r\n      diff = left_diff;\r\n      \/\/we will go on checking inside the array\r\n      printf(\"%d&#92;n\", MissingAP(arr, 0, n-1, diff, -1));\r\n      continue;\r\n    }\r\n\r\n    \/\/else missing ele is at one of the corners or near corner\r\n    if(left_diff &lt; right_diff){\r\n      missing_ele = arr[n-1] - left_diff;\r\n      printf(\"%d&#92;n\", missing_ele);\r\n    }\r\n    else{\r\n      missing_ele = arr[0] + right_diff;\r\n      printf(\"%d&#92;n\", missing_ele);\r\n    }\r\n  }\r\n  return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1519_2\">\r\n\t\t\t\t\t\t\t\t\r\n<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\n#include &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\nint MissingAP(int *arr, int low, int high, int diff, int missing_ele){\r\n  if(low &lt;= high){\r\n    int mid = low + (high - low)\/2;\r\n\r\n    \/* if curr element is at its right place in AP\r\n    we will search in the lower half then *\/\r\n    if(arr[mid] == arr[0] + mid*diff)\r\n      return MissingAP(arr, mid+1, high, diff, missing_ele);\r\n\r\n    \/* else save the value that should be here and further \r\n    search in the lower half *\/\r\n    else{\r\n      missing_ele = arr[0] + mid*diff;\r\n      return MissingAP(arr, low, mid - 1, diff, missing_ele);\r\n    }\r\n  }\r\n  \/\/finally return the ele that was not found on its place\r\n  return missing_ele;\r\n}\r\n\r\nint main()\r\n{\r\n  int t; cin&gt;&gt;t;\r\n  while(t--){\r\n    int n; cin&gt;&gt;n;\r\n    int arr[n];\r\n    for(int i=0; i&lt;n; i++)\r\n      cin&gt;&gt;arr[i];\r\n\r\n    \/\/check if missing element lies at one of the ends or close to one of the ends  \r\n    int left_diff = arr[1] - arr[0];\r\n    int right_diff = arr[n-1] - arr[n-2];\r\n    int diff, missing_ele;\r\n\r\n    \/\/if left == right, missing element lies inside of the array\r\n    if(left_diff == right_diff){\r\n      diff = left_diff;\r\n      \/\/we will go on checking inside the array\r\n      cout&lt;&lt;MissingAP(arr, 0, n-1, diff, -1)&lt;&lt;\"&#92;n\";\r\n      continue;\r\n    }\r\n\r\n    \/\/else missing ele is at one of the corners or near corner\r\n    if(left_diff &lt; right_diff){\r\n      missing_ele = arr[n-1] - left_diff;\r\n      cout&lt;&lt;missing_ele&lt;&lt;\"&#92;n\";\r\n    }\r\n    else{\r\n      missing_ele = arr[0] + right_diff;\r\n      cout&lt;&lt;missing_ele&lt;&lt;\"&#92;n\";\r\n    }\r\n  }\r\n  return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1519_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\nimport java.util.*;\r\nimport java.io.*;\r\n\r\npublic class Main {\r\n  static int MissingAP(int []arr, int low, int high, int diff, int missing_ele){\r\n    if(low &lt;= high){\r\n      int mid = low + (high - low)\/2;\r\n\r\n      \/* if curr element is at its right place in AP\r\n      we will search in the lower half then *\/\r\n      if(arr[mid] == (arr[0] + mid*diff))\r\n        return MissingAP(arr, mid+1, high, diff, missing_ele);\r\n\r\n      \/* else save the value that should be here and further \r\n      search in the lower half *\/\r\n      else{\r\n        missing_ele = arr[0] + mid*diff;\r\n        return MissingAP(arr, low, mid - 1, diff, missing_ele);\r\n      }\r\n    }\r\n    \/\/finally return the ele that was not found on its place\r\n    return missing_ele;\r\n  }\r\n\r\n  public static void main(String args[]) throws IOException {\r\n\r\n    Scanner sc = new Scanner(System.in);\r\n    int t = sc.nextInt();\r\n    while(t != 0){\r\n      int n = sc.nextInt();\r\n      int arr[] = new int[n];\r\n      for(int i=0; i&lt;n; i++)\r\n        arr[i] = sc.nextInt();\r\n\r\n      \/\/check if missing element lies at one of the ends or close to one of the ends  \r\n      int left_diff = arr[1] - arr[0];\r\n      int right_diff = arr[n-1] - arr[n-2];\r\n      int diff, missing_ele;\r\n\r\n      \/\/if left == right, missing element lies inside of the array\r\n      if(left_diff == right_diff){\r\n        diff = left_diff;\r\n        \/\/we will go on checking inside the array\r\n        System.out.println(MissingAP(arr, 0, n-1, diff, -1));\r\n        t--;\r\n        continue;\r\n      }\r\n\r\n      \/\/else missing ele is at one of the corners or near corner\r\n      if(left_diff &lt; right_diff){\r\n        missing_ele = arr[n-1] - left_diff;\r\n        System.out.println(missing_ele);\r\n      }\r\n      else{\r\n        missing_ele = arr[0] + right_diff;\r\n        System.out.println(missing_ele);\r\n      }\r\n      t--;\r\n    }\r\n  }\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_1519 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_1519 a\"),jQuery(\"#tab-content_1519\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t<br \/>\n[forminator_quiz id=&quot;1534&quot;]<br \/>\n<strong>Space Complexity<\/strong>: O(1)<\/p>\n<p>This article tried to discuss the concept of <strong>Binary Search<\/strong>. Hope this blog helps you understand and solve the problem. To practice more problems on Searching you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONCEPTS USED: Binary Search DIFFICULTY LEVEL: Medium PROBLEM STATEMENT(SIMPLIFIED): Given an array A, such that it is arranged in an Arithmetic Progression, but one element from this A.P. is missing, find it. For Example: Input : A = [3, 6, 12, 15, 18] Output : 9 Explanation : In the given A.P. series starting with [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[136],"tags":[],"class_list":["post-1514","post","type-post","status-publish","format-standard","hentry","category-binary-search"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Binary Search | Missing in Ap | Prepbytes<\/title>\n<meta name=\"description\" content=\"Given an Array A, Such That it Is Arranged in an Arithmetic Progression, but One Element from This A.p. Is Missing, Find It.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Binary Search | Missing in Ap | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Given an Array A, Such That it Is Arranged in an Arithmetic Progression, but One Element from This A.p. Is Missing, Find It.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-01T09:31:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-30T13:21:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Missing in AP\",\"datePublished\":\"2020-07-01T09:31:32+00:00\",\"dateModified\":\"2022-03-30T13:21:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/\"},\"wordCount\":262,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png\",\"articleSection\":[\"binary search\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/\",\"name\":\"Binary Search | Missing in Ap | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png\",\"datePublished\":\"2020-07-01T09:31:32+00:00\",\"dateModified\":\"2022-03-30T13:21:28+00:00\",\"description\":\"Given an Array A, Such That it Is Arranged in an Arithmetic Progression, but One Element from This A.p. Is Missing, Find It.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"binary search\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/binary-search\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Missing in AP\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Binary Search | Missing in Ap | Prepbytes","description":"Given an Array A, Such That it Is Arranged in an Arithmetic Progression, but One Element from This A.p. Is Missing, Find It.","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:\/\/prepbytes.com\/blog\/missing-in-ap\/","og_locale":"en_US","og_type":"article","og_title":"Binary Search | Missing in Ap | Prepbytes","og_description":"Given an Array A, Such That it Is Arranged in an Arithmetic Progression, but One Element from This A.p. Is Missing, Find It.","og_url":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-01T09:31:32+00:00","article_modified_time":"2022-03-30T13:21:28+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Missing in AP","datePublished":"2020-07-01T09:31:32+00:00","dateModified":"2022-03-30T13:21:28+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/"},"wordCount":262,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png","articleSection":["binary search"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/missing-in-ap\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/","url":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/","name":"Binary Search | Missing in Ap | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png","datePublished":"2020-07-01T09:31:32+00:00","dateModified":"2022-03-30T13:21:28+00:00","description":"Given an Array A, Such That it Is Arranged in an Arithmetic Progression, but One Element from This A.p. Is Missing, Find It.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/missing-in-ap\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180179926-Article_415.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/missing-in-ap\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"binary search","item":"https:\/\/prepbytes.com\/blog\/category\/binary-search\/"},{"@type":"ListItem","position":3,"name":"Missing in AP"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=1514"}],"version-history":[{"count":8,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1514\/revisions"}],"predecessor-version":[{"id":8363,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1514\/revisions\/8363"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}