{"id":33385,"date":"2023-02-07T13:44:11","date_gmt":"2023-02-07T08:14:11","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/"},"modified":"2023-02-07T13:44:11","modified_gmt":"2023-02-07T08:14:11","slug":"solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/","title":{"rendered":"[Solved] What is the simplest way to access array (not vector) element from middle to outermost?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-31066824\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"31066824\" data-parentid=\"31066465\" data-score=\"2\" data-position-on-page=\"2\" data-highest-scored=\"0\" data-question-has-accepted-highest-score=\"0\" itemprop=\"suggestedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>An algorithm to list the elements from innermost to outermost is to pull off the last and first entries (pop and shift) in the array in alternation until no elements are left, then reverse the list of what you have pulled off. This works for odd and even-length arrays naturally.<\/p>\n<p>For example, <\/p>\n<pre><code>1,2,3,4,5,6\n1,2,3,4,5       6\n2,3,4,5         6,1\n2,3,4           6,1,5\n3,4             6,1,5,2\n3               6,1,5,2,4\n                6,1,5,2,4,3\n                3,4,2,5,1,6  \/\/ Reversed list from above\n<\/code><\/pre>\n<p>and<\/p>\n<pre><code>1,2,3,4,5\n1,2,3,4         5\n2,3,4           5,1\n2,3             5,1,4\n3               5,1,4,2\n                5,1,4,2,3\n                3,2,4,1,5  \/\/ Reversed list from above\n<\/code><\/pre>\n<p>You can use this above algorithm to create an index map array which you can use to access your main array in the order you requested. For example:<\/p>\n<pre><code>\/\/ Start with an array of indices \n\/\/ from 0..arr.length-1\n0,1,2,3,4\n0,1,2,3         4\n1,2,3           4,0\n1,2             4,0,3\n2               4,0,3,1\n                4,0,3,1,2\n                2,1,3,0,4  \/\/ Reversed list from above\n<\/code><\/pre>\n<p>Then you have a mapping array <\/p>\n<pre><code>int[] arr = new int[]{1,2,3,4,5};\nint[] map = new int[]{2,1,3,0,4};\n<\/code><\/pre>\n<p>which you can use to access your main array, for example<\/p>\n<pre><code>arr[map[0]]; \/\/ returns 3\n<\/code><\/pre>\n<hr>\n<p><strong>Edit:<\/strong> Added Java implementation and <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/ideone.com\/SneAAo\">demo<\/a>.<\/p>\n<pre><code>public static int[] creatIndexMap(int length) {\n\n    \/\/ Create a deque so elements can be removed from both ends\n    Deque&lt;Integer&gt; tmp = new LinkedList&lt;Integer&gt;();\n    for(int i = 0; i &lt; length; i++) {\n        tmp.add(i);\n    }\n\n    \/\/ In alternation remove the last and first entries of tmp\n    \/\/ and add them in reverse order to the map array\n    int[] map = new int[length];\n    int index = length-1;\n    while (!tmp.isEmpty()) {\n        \/\/ Remove last element\n        map[index--] = (int) tmp.removeLast();\n\n        \/\/ Remove first element\n        if(!tmp.isEmpty()) {\n            map[index--] = (int) tmp.removeFirst();\n        }\n    }\n    return map;\n}\n<\/code><\/pre>\n<p><strong>Demo:<\/strong> <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/ideone.com\/SneAAo\">IDEOne<\/a><\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">1<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved What is the simplest way to access array (not vector) element from middle to outermost? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] An algorithm to list the elements from innermost to outermost is to pull off the last and first entries (pop and shift) in the array in alternation until no elements are left, then reverse the list of what you have pulled off. This works for odd and even-length arrays naturally. For example, 1,2,3,4,5,6 1,2,3,4,5 &#8230; <a title=\"[Solved] What is the simplest way to access array (not vector) element from middle to outermost?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/\" aria-label=\"More on [Solved] What is the simplest way to access array (not vector) element from middle to outermost?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[361,358],"class_list":["post-33385","post","type-post","status-publish","format-standard","hentry","category-solved","tag-arrays","tag-language-agnostic"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] What is the simplest way to access array (not vector) element from middle to outermost? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] What is the simplest way to access array (not vector) element from middle to outermost? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] An algorithm to list the elements from innermost to outermost is to pull off the last and first entries (pop and shift) in the array in alternation until no elements are left, then reverse the list of what you have pulled off. This works for odd and even-length arrays naturally. For example, 1,2,3,4,5,6 1,2,3,4,5 ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-07T08:14:11+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] What is the simplest way to access array (not vector) element from middle to outermost?\",\"datePublished\":\"2023-02-07T08:14:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\\\/\"},\"wordCount\":140,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"arrays\",\"language-agnostic\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\\\/\",\"name\":\"[Solved] What is the simplest way to access array (not vector) element from middle to outermost? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2023-02-07T08:14:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] What is the simplest way to access array (not vector) element from middle to outermost?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] What is the simplest way to access array (not vector) element from middle to outermost? - JassWeb","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:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] What is the simplest way to access array (not vector) element from middle to outermost? - JassWeb","og_description":"[ad_1] An algorithm to list the elements from innermost to outermost is to pull off the last and first entries (pop and shift) in the array in alternation until no elements are left, then reverse the list of what you have pulled off. This works for odd and even-length arrays naturally. For example, 1,2,3,4,5,6 1,2,3,4,5 ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/","og_site_name":"JassWeb","article_published_time":"2023-02-07T08:14:11+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] What is the simplest way to access array (not vector) element from middle to outermost?","datePublished":"2023-02-07T08:14:11+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/"},"wordCount":140,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["arrays","language-agnostic"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/","url":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/","name":"[Solved] What is the simplest way to access array (not vector) element from middle to outermost? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-02-07T08:14:11+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-the-simplest-way-to-access-array-not-vector-element-from-middle-to-outermost\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] What is the simplest way to access array (not vector) element from middle to outermost?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/33385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=33385"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/33385\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=33385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=33385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=33385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}