Mad Library Sesh
This commit is contained in:
parent
41ab2680ff
commit
9963b8ffd4
31
LibStudySesh.sln
Normal file
31
LibStudySesh.sln
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32929.385
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibStudySesh", "LibStudySesh.vcxproj", "{3D037F4C-2040-4E91-880E-335F27A3A8ED}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{3D037F4C-2040-4E91-880E-335F27A3A8ED}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3D037F4C-2040-4E91-880E-335F27A3A8ED}.Debug|x64.Build.0 = Debug|x64
|
||||
{3D037F4C-2040-4E91-880E-335F27A3A8ED}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{3D037F4C-2040-4E91-880E-335F27A3A8ED}.Debug|x86.Build.0 = Debug|Win32
|
||||
{3D037F4C-2040-4E91-880E-335F27A3A8ED}.Release|x64.ActiveCfg = Release|x64
|
||||
{3D037F4C-2040-4E91-880E-335F27A3A8ED}.Release|x64.Build.0 = Release|x64
|
||||
{3D037F4C-2040-4E91-880E-335F27A3A8ED}.Release|x86.ActiveCfg = Release|Win32
|
||||
{3D037F4C-2040-4E91-880E-335F27A3A8ED}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {9AEFFC5C-BDFA-4B81-BC50-F62BD1935871}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
139
LibStudySesh.vcxproj
Normal file
139
LibStudySesh.vcxproj
Normal file
@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{3d037f4c-2040-4e91-880e-335f27a3a8ed}</ProjectGuid>
|
||||
<RootNamespace>LibStudySesh</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\leet.cpp" />
|
||||
<ClCompile Include="src\main.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\leet.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
30
LibStudySesh.vcxproj.filters
Normal file
30
LibStudySesh.vcxproj.filters
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\main.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\leet.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\leet.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
34
src/leet.cpp
Normal file
34
src/leet.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
#include "leet.h"
|
||||
|
||||
std::vector<std::vector<int>> Solution::threeSum(std::vector<int>& nums) {
|
||||
std::vector<std::vector<int>> ans;
|
||||
|
||||
//itterate through map O(n^2) and create a map of the sums of each element
|
||||
for (int i = 0; i < nums.size(); i++)
|
||||
{
|
||||
for (int j = i+1; j < nums.size(); j++)
|
||||
{
|
||||
sums[nums[i] + nums[j]] = std::vector<int>{i, j};
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < nums.size(); i++)
|
||||
{
|
||||
if (sums.count(0-nums[i]))
|
||||
{//If required value is in map
|
||||
std::vector<int> indexes = sums[0-nums[i]];
|
||||
if (i == indexes[0] || i == indexes[1])
|
||||
continue;
|
||||
ans.push_back({ nums[i], nums[indexes[0]], nums[indexes[1]] });
|
||||
}
|
||||
}
|
||||
|
||||
return ans;
|
||||
}
|
||||
|
||||
//
|
||||
//Given an integer array nums, return all the triplets[nums[i], nums[j], nums[k]]
|
||||
// such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0.
|
||||
//
|
||||
//Notice that the solution set must not contain duplicate triplets.
|
11
src/leet.h
Normal file
11
src/leet.h
Normal file
@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
std::vector<std::vector<int>> threeSum(std::vector<int>& nums);
|
||||
private:
|
||||
//Map of sum + indexes
|
||||
std::map<int, std::vector<int>> sums;
|
||||
};
|
103
src/main.cpp
Normal file
103
src/main.cpp
Normal file
@ -0,0 +1,103 @@
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <iomanip>
|
||||
|
||||
#include "leet.h"
|
||||
|
||||
template<typename T>
|
||||
void swap(T* xp, T* yp) {
|
||||
T temp = *xp;
|
||||
*xp = *yp;
|
||||
*yp = temp;
|
||||
}
|
||||
|
||||
void selectionSort(int caseArr[], std::string placeArr[], int n)
|
||||
{
|
||||
int i, j, min_idx;
|
||||
for (i = 0; i < n - 1; i++)
|
||||
{
|
||||
min_idx = i;
|
||||
for (j = i + 1; j < n; j++)
|
||||
if (caseArr[j] > caseArr[min_idx])
|
||||
min_idx = j;
|
||||
|
||||
swap<int>(&caseArr[min_idx], &caseArr[i]);
|
||||
swap<std::string>(&placeArr[min_idx], &placeArr[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Write code to replace the selection sort function with bubble sort. In
|
||||
your own words, briefly compare the two sorting algorithms. Use the
|
||||
code examples to support your claims.
|
||||
*/
|
||||
|
||||
void bubbleSort(int caseArr[], std::string placeArr[], int n)
|
||||
{
|
||||
bool flag = true;
|
||||
|
||||
while (flag) {
|
||||
for (int i = n - 1; i > 0; i--)
|
||||
{
|
||||
if (caseArr[i] > caseArr[i - 1])
|
||||
{//Swap needs to take place
|
||||
flag = false;
|
||||
swap<int>(&caseArr[i], &caseArr[i - 1]);
|
||||
swap<std::string>(&placeArr[i], &placeArr[i - 1]);
|
||||
i+=2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Array is sorted
|
||||
if (flag)
|
||||
return;
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Bubble sort has an average time complexity of O(n^2) which is the same as an insertion
|
||||
sort so as the number of data items grow, both are likely to have same scale in performance.
|
||||
This means it doesn't really matter which one we pick. They both also have the same memory complexity of
|
||||
O(1) which is constant as no new memory is allocated during the execution of the program. Because of this,
|
||||
both algorithms are nearly idendical hence it doesn't really matter which one we choose.*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Birmingham 120
|
||||
Derbyshire 94
|
||||
Essex 182
|
||||
Hertfordshire 174
|
||||
Kent 157
|
||||
Liverpool 102
|
||||
Northamptonshire 107
|
||||
Nottinghamshire 88
|
||||
Staffordshire 89
|
||||
Wolverhampton 89
|
||||
*/
|
||||
|
||||
|
||||
int main() {
|
||||
|
||||
/*std::string UTLANames[] = { "Birmingham", "Derbyshire", "Essex",
|
||||
"Hertfordshire", "Kent", "Liverpool",
|
||||
"Northamptonshire", "Nottinghamshire",
|
||||
"Staffordshire", "Wolverhampton" };
|
||||
int CovidCases[] = { 120, 94, 182, 174, 157, 102, 107, 88, 89, 89 };
|
||||
|
||||
bubbleSort(CovidCases, UTLANames, 10);
|
||||
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
{
|
||||
std::cout << std::left << std::setw(20) << UTLANames[i] << CovidCases[i] << " Cases\n";
|
||||
}
|
||||
|
||||
std::cout << "Hello, World!";*/
|
||||
std::vector<int> nums{ -1, 0, 1, 2, -1, -4 };
|
||||
Solution s;
|
||||
std::vector<std::vector<int>> ans = s.threeSum(nums);
|
||||
}
|
Loading…
Reference in New Issue
Block a user