      "We'll use a second stack to keep track of the minimum values.\n",
      "\n",
      "### Min\n",
      "\n",
      "* If the second stack is empty, return the max int value\n",
      "* Else, return the top of the stack, without popping it\n",
      "\n",
      "Complexity:\n",
      "* Time: O(1)\n",
      "* Space: O(1)\n",
 
</s> remove     "* Is this a stack of ints?\n",
 </s> add     "*Problem statements are often intentionally ambiguous.  Identifying constraints and stating assumptions can help to ensure you code the intended solution.*\n",
    "\n",
    "* Can we assume this is a stack of ints?\n",
    "    * Yes\n",
    "* Can we assume we already have a stack class that can be used for this problem?\n", </s> remove     "## Clarifying Questions\n",
 </s> add     "## Constraints and Assumptions\n", </s> remove     "* [Clarifying Questions](#Clarifying-Questions)\n",
 </s> add     "* [Constraints and Assumptions](#Constraints-and-Assumptions)\n", </s> remove     "* [Code](#Code)"
 </s> add     "* [Code](#Code)\n",
    "* [Unit Test](#Unit-Test)"
    "* If the second stack is empty, return an error code (max int value)\n",
      "We'll use a second stack to keep track of the minimum values.\n",
      "\n",
      "### Min\n",
      "\n",
    "* If the second stack is empty, return an error code (max int value)\n",
      "* Else, return the top of the stack, without popping it\n",
      "\n",
      "Complexity:\n",
      "* Time: O(1)\n",
      "* Space: O(1)\n",
keep keep keep keep replace keep keep keep keep keep
 Reworked notebook: Added more detail to constraints and test cases.  Reworked unit test. 
stacks-queues/stack-min.ipynb