Compare commits
7 Commits
internship
...
leetcode-2
| Author | SHA1 | Date | |
|---|---|---|---|
|
f36e14ddf1
|
|||
|
d7cb7e1193
|
|||
|
|
4fe3946cb4 | ||
|
|
7fbe03946f | ||
|
|
7a613a4507 | ||
|
|
9f1f7789bf | ||
|
|
8492b82d12 |
132
css/theme/source/dracula.scss
Normal file
132
css/theme/source/dracula.scss
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
/**
|
||||||
|
* Dracula Dark theme for reveal.js.
|
||||||
|
* Based on https://draculatheme.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// Default mixins and settings -----------------
|
||||||
|
@import "../template/mixins";
|
||||||
|
@import "../template/settings";
|
||||||
|
// ---------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Include theme-specific fonts
|
||||||
|
$systemFontsSansSerif: -apple-system,
|
||||||
|
BlinkMacSystemFont,
|
||||||
|
avenir next,
|
||||||
|
avenir,
|
||||||
|
segoe ui,
|
||||||
|
helvetica neue,
|
||||||
|
helvetica,
|
||||||
|
Cantarell,
|
||||||
|
Ubuntu,
|
||||||
|
roboto,
|
||||||
|
noto,
|
||||||
|
arial,
|
||||||
|
sans-serif;
|
||||||
|
$systemFontsMono: Menlo,
|
||||||
|
Consolas,
|
||||||
|
Monaco,
|
||||||
|
Liberation Mono,
|
||||||
|
Lucida Console,
|
||||||
|
monospace;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dracula colors by Zeno Rocha
|
||||||
|
* https://draculatheme.com/contribute
|
||||||
|
*/
|
||||||
|
html * {
|
||||||
|
color-profile: sRGB;
|
||||||
|
rendering-intent: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
$background: #282A36;
|
||||||
|
$foreground: #F8F8F2;
|
||||||
|
$selection: #44475A;
|
||||||
|
$comment: #6272A4;
|
||||||
|
$red: #FF5555;
|
||||||
|
$orange: #FFB86C;
|
||||||
|
$yellow: #F1FA8C;
|
||||||
|
$green: #50FA7B;
|
||||||
|
$purple: #BD93F9;
|
||||||
|
$cyan: #8BE9FD;
|
||||||
|
$pink: #FF79C6;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Override theme settings (see ../template/settings.scss)
|
||||||
|
$mainColor: $foreground;
|
||||||
|
$headingColor: $purple;
|
||||||
|
$headingTextShadow: none;
|
||||||
|
$headingTextTransform: none;
|
||||||
|
$backgroundColor: $background;
|
||||||
|
$linkColor: $pink;
|
||||||
|
$linkColorHover: $cyan;
|
||||||
|
$selectionBackgroundColor: $selection;
|
||||||
|
$inlineCodeColor: $green;
|
||||||
|
$listBulletColor: $cyan;
|
||||||
|
|
||||||
|
$mainFont: $systemFontsSansSerif;
|
||||||
|
$codeFont: "Fira Code", $systemFontsMono;
|
||||||
|
|
||||||
|
// Change text colors against light slide backgrounds
|
||||||
|
@include light-bg-text-color($background);
|
||||||
|
|
||||||
|
// Theme template ------------------------------
|
||||||
|
@import "../template/theme";
|
||||||
|
// ---------------------------------------------
|
||||||
|
|
||||||
|
// Define additional color effects based on Dracula spec
|
||||||
|
// https://spec.draculatheme.com/
|
||||||
|
:root {
|
||||||
|
--r-bold-color: #{$orange};
|
||||||
|
--r-italic-color: #{$yellow};
|
||||||
|
--r-inline-code-color: #{$inlineCodeColor};
|
||||||
|
--r-list-bullet-color: #{$listBulletColor};
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal strong, .reveal b {
|
||||||
|
color: var(--r-bold-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal em, .reveal i, .reveal blockquote {
|
||||||
|
color: var(--r-italic-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal code {
|
||||||
|
color: var(--r-inline-code-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dracula colored list bullets and numbers
|
||||||
|
.reveal ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ul li::before {
|
||||||
|
content: "•";
|
||||||
|
color: var(--r-list-bullet-color);
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
margin-left: -1em
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ol {
|
||||||
|
list-style: none;
|
||||||
|
counter-reset: li;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ol li::before {
|
||||||
|
content: counter(li) ".";
|
||||||
|
color: var(--r-list-bullet-color);
|
||||||
|
display: inline-block;
|
||||||
|
width: 2em;
|
||||||
|
|
||||||
|
margin-left: -2.5em;
|
||||||
|
margin-right: 0.5em;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ol li {
|
||||||
|
counter-increment: li
|
||||||
|
}
|
||||||
414
dist/theme/dracula.css
vendored
Normal file
414
dist/theme/dracula.css
vendored
Normal file
@@ -0,0 +1,414 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
/**
|
||||||
|
* Dracula Dark theme for reveal.js.
|
||||||
|
* Based on https://draculatheme.com
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Dracula colors by Zeno Rocha
|
||||||
|
* https://draculatheme.com/contribute
|
||||||
|
*/
|
||||||
|
html * {
|
||||||
|
color-profile: sRGB;
|
||||||
|
rendering-intent: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
section.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 {
|
||||||
|
color: #282A36;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* GLOBAL STYLES
|
||||||
|
*********************************************/
|
||||||
|
:root {
|
||||||
|
--r-background-color: #282A36;
|
||||||
|
--r-main-font: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||||
|
--r-main-font-size: 40px;
|
||||||
|
--r-main-color: #F8F8F2;
|
||||||
|
--r-block-margin: 20px;
|
||||||
|
--r-heading-margin: 0 0 20px 0;
|
||||||
|
--r-heading-font: League Gothic, Impact, sans-serif;
|
||||||
|
--r-heading-color: #BD93F9;
|
||||||
|
--r-heading-line-height: 1.2;
|
||||||
|
--r-heading-letter-spacing: normal;
|
||||||
|
--r-heading-text-transform: none;
|
||||||
|
--r-heading-text-shadow: none;
|
||||||
|
--r-heading-font-weight: normal;
|
||||||
|
--r-heading1-text-shadow: none;
|
||||||
|
--r-heading1-size: 3.77em;
|
||||||
|
--r-heading2-size: 2.11em;
|
||||||
|
--r-heading3-size: 1.55em;
|
||||||
|
--r-heading4-size: 1em;
|
||||||
|
--r-code-font: Fira Code, Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
|
||||||
|
--r-link-color: #FF79C6;
|
||||||
|
--r-link-color-dark: #ff2da5;
|
||||||
|
--r-link-color-hover: #8BE9FD;
|
||||||
|
--r-selection-background-color: #44475A;
|
||||||
|
--r-selection-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal-viewport {
|
||||||
|
background: #282A36;
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal {
|
||||||
|
font-family: var(--r-main-font);
|
||||||
|
font-size: var(--r-main-font-size);
|
||||||
|
font-weight: normal;
|
||||||
|
color: var(--r-main-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ::selection {
|
||||||
|
color: var(--r-selection-color);
|
||||||
|
background: var(--r-selection-background-color);
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ::-moz-selection {
|
||||||
|
color: var(--r-selection-color);
|
||||||
|
background: var(--r-selection-background-color);
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal .slides section,
|
||||||
|
.reveal .slides section > section {
|
||||||
|
line-height: 1.3;
|
||||||
|
font-weight: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* HEADERS
|
||||||
|
*********************************************/
|
||||||
|
.reveal h1,
|
||||||
|
.reveal h2,
|
||||||
|
.reveal h3,
|
||||||
|
.reveal h4,
|
||||||
|
.reveal h5,
|
||||||
|
.reveal h6 {
|
||||||
|
margin: var(--r-heading-margin);
|
||||||
|
color: var(--r-heading-color);
|
||||||
|
font-family: var(--r-heading-font);
|
||||||
|
font-weight: var(--r-heading-font-weight);
|
||||||
|
line-height: var(--r-heading-line-height);
|
||||||
|
letter-spacing: var(--r-heading-letter-spacing);
|
||||||
|
text-transform: var(--r-heading-text-transform);
|
||||||
|
text-shadow: var(--r-heading-text-shadow);
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal h1 {
|
||||||
|
font-size: var(--r-heading1-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal h2 {
|
||||||
|
font-size: var(--r-heading2-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal h3 {
|
||||||
|
font-size: var(--r-heading3-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal h4 {
|
||||||
|
font-size: var(--r-heading4-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal h1 {
|
||||||
|
text-shadow: var(--r-heading1-text-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* OTHER
|
||||||
|
*********************************************/
|
||||||
|
.reveal p {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Remove trailing margins after titles */
|
||||||
|
.reveal h1:last-child,
|
||||||
|
.reveal h2:last-child,
|
||||||
|
.reveal h3:last-child,
|
||||||
|
.reveal h4:last-child,
|
||||||
|
.reveal h5:last-child,
|
||||||
|
.reveal h6:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure certain elements are never larger than the slide itself */
|
||||||
|
.reveal img,
|
||||||
|
.reveal video,
|
||||||
|
.reveal iframe {
|
||||||
|
max-width: 95%;
|
||||||
|
max-height: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal strong,
|
||||||
|
.reveal b {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal em {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ol,
|
||||||
|
.reveal dl,
|
||||||
|
.reveal ul {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: left;
|
||||||
|
margin: 0 0 0 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ol {
|
||||||
|
list-style-type: decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ul {
|
||||||
|
list-style-type: disc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ul ul {
|
||||||
|
list-style-type: square;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ul ul ul {
|
||||||
|
list-style-type: circle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ul ul,
|
||||||
|
.reveal ul ol,
|
||||||
|
.reveal ol ol,
|
||||||
|
.reveal ol ul {
|
||||||
|
display: block;
|
||||||
|
margin-left: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal dt {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal dd {
|
||||||
|
margin-left: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal blockquote {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
width: 70%;
|
||||||
|
margin: var(--r-block-margin) auto;
|
||||||
|
padding: 5px;
|
||||||
|
font-style: italic;
|
||||||
|
background: rgba(255, 255, 255, 0.05);
|
||||||
|
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal blockquote p:first-child,
|
||||||
|
.reveal blockquote p:last-child {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal q {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal pre {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
width: 90%;
|
||||||
|
margin: var(--r-block-margin) auto;
|
||||||
|
text-align: left;
|
||||||
|
font-size: 0.55em;
|
||||||
|
font-family: var(--r-code-font);
|
||||||
|
line-height: 1.2em;
|
||||||
|
word-wrap: break-word;
|
||||||
|
box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal code {
|
||||||
|
font-family: var(--r-code-font);
|
||||||
|
text-transform: none;
|
||||||
|
tab-size: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal pre code {
|
||||||
|
display: block;
|
||||||
|
padding: 5px;
|
||||||
|
overflow: auto;
|
||||||
|
max-height: 400px;
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal .code-wrapper {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal .code-wrapper code {
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal table {
|
||||||
|
margin: auto;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal table th {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal table th,
|
||||||
|
.reveal table td {
|
||||||
|
text-align: left;
|
||||||
|
padding: 0.2em 0.5em 0.2em 0.5em;
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal table th[align=center],
|
||||||
|
.reveal table td[align=center] {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal table th[align=right],
|
||||||
|
.reveal table td[align=right] {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal table tbody tr:last-child th,
|
||||||
|
.reveal table tbody tr:last-child td {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal sup {
|
||||||
|
vertical-align: super;
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal sub {
|
||||||
|
vertical-align: sub;
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal small {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 0.6em;
|
||||||
|
line-height: 1.2em;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal small * {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal img {
|
||||||
|
margin: var(--r-block-margin) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* LINKS
|
||||||
|
*********************************************/
|
||||||
|
.reveal a {
|
||||||
|
color: var(--r-link-color);
|
||||||
|
text-decoration: none;
|
||||||
|
transition: color 0.15s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal a:hover {
|
||||||
|
color: var(--r-link-color-hover);
|
||||||
|
text-shadow: none;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal .roll span:after {
|
||||||
|
color: #fff;
|
||||||
|
background: var(--r-link-color-dark);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* Frame helper
|
||||||
|
*********************************************/
|
||||||
|
.reveal .r-frame {
|
||||||
|
border: 4px solid var(--r-main-color);
|
||||||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal a .r-frame {
|
||||||
|
transition: all 0.15s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal a:hover .r-frame {
|
||||||
|
border-color: var(--r-link-color);
|
||||||
|
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* NAVIGATION CONTROLS
|
||||||
|
*********************************************/
|
||||||
|
.reveal .controls {
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* PROGRESS BAR
|
||||||
|
*********************************************/
|
||||||
|
.reveal .progress {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
color: var(--r-link-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* PRINT BACKGROUND
|
||||||
|
*********************************************/
|
||||||
|
@media print {
|
||||||
|
.backgrounds {
|
||||||
|
background-color: var(--r-background-color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--r-bold-color: #FFB86C;
|
||||||
|
--r-italic-color: #F1FA8C;
|
||||||
|
--r-inline-code-color: #50FA7B;
|
||||||
|
--r-list-bullet-color: #8BE9FD;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal strong, .reveal b {
|
||||||
|
color: var(--r-bold-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal em, .reveal i, .reveal blockquote {
|
||||||
|
color: var(--r-italic-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal code {
|
||||||
|
color: var(--r-inline-code-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ul li::before {
|
||||||
|
content: "•";
|
||||||
|
color: var(--r-list-bullet-color);
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
margin-left: -1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ol {
|
||||||
|
list-style: none;
|
||||||
|
counter-reset: li;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ol li::before {
|
||||||
|
content: counter(li) ".";
|
||||||
|
color: var(--r-list-bullet-color);
|
||||||
|
display: inline-block;
|
||||||
|
width: 2em;
|
||||||
|
margin-left: -2.5em;
|
||||||
|
margin-right: 0.5em;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal ol li {
|
||||||
|
counter-increment: li;
|
||||||
|
}
|
||||||
@@ -278,7 +278,7 @@ gulp.task('package', gulp.series(() =>
|
|||||||
'./lib/**',
|
'./lib/**',
|
||||||
'./images/**',
|
'./images/**',
|
||||||
'./plugin/**',
|
'./plugin/**',
|
||||||
'./**.md'
|
'./**/*.md'
|
||||||
],
|
],
|
||||||
{ base: './' }
|
{ base: './' }
|
||||||
)
|
)
|
||||||
@@ -286,7 +286,7 @@ gulp.task('package', gulp.series(() =>
|
|||||||
|
|
||||||
))
|
))
|
||||||
|
|
||||||
gulp.task('reload', () => gulp.src(['*.html', '*.md'])
|
gulp.task('reload', () => gulp.src(['**/*.html', '**/*.md'])
|
||||||
.pipe(connect.reload()));
|
.pipe(connect.reload()));
|
||||||
|
|
||||||
gulp.task('serve', () => {
|
gulp.task('serve', () => {
|
||||||
@@ -298,7 +298,7 @@ gulp.task('serve', () => {
|
|||||||
livereload: true
|
livereload: true
|
||||||
})
|
})
|
||||||
|
|
||||||
gulp.watch(['*.html', '*.md'], gulp.series('reload'))
|
gulp.watch(['**/*.html', '**/*.md'], gulp.series('reload'))
|
||||||
|
|
||||||
gulp.watch(['js/**'], gulp.series('js', 'reload', 'eslint'))
|
gulp.watch(['js/**'], gulp.series('js', 'reload', 'eslint'))
|
||||||
|
|
||||||
@@ -316,4 +316,4 @@ gulp.task('serve', () => {
|
|||||||
|
|
||||||
gulp.watch(['test/*.html'], gulp.series('test'))
|
gulp.watch(['test/*.html'], gulp.series('test'))
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|||||||
13
index.html
13
index.html
@@ -16,16 +16,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<div class="reveal">
|
<div class="reveal">
|
||||||
<div class="slides">
|
<div class="slides">
|
||||||
<section>Slide 1</section>
|
<section data-markdown="leetcode-20230110.md"></section>
|
||||||
<section>Slide 2
|
|
||||||
<aside class="notes">
|
|
||||||
<p>Some notes</p>
|
|
||||||
</aside>
|
|
||||||
<p>Some slide text</p>
|
|
||||||
<aside class="notes">
|
|
||||||
<p>and some more notes</p>
|
|
||||||
</aside>
|
|
||||||
</section>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -38,6 +29,8 @@
|
|||||||
// - https://revealjs.com/initialization/
|
// - https://revealjs.com/initialization/
|
||||||
// - https://revealjs.com/config/
|
// - https://revealjs.com/config/
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
|
width: 1000,
|
||||||
|
height: 1000,
|
||||||
hash: true,
|
hash: true,
|
||||||
|
|
||||||
// Learn about plugins: https://revealjs.com/plugins/
|
// Learn about plugins: https://revealjs.com/plugins/
|
||||||
|
|||||||
147
leetcode-20230110.md
Normal file
147
leetcode-20230110.md
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
# Leetcode 💻 寒假 20230110
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 179. Largest Number
|
||||||
|
|
||||||
|
给定一个非负整数列表 nums,将它们排列成最大的数并返回。
|
||||||
|
|
||||||
|
```cpp [|4-6|7-9|10-11|13]
|
||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
string largestNumber(vector<int>& nums) {
|
||||||
|
vector<string> v;
|
||||||
|
v.reserve(nums.size());
|
||||||
|
for (auto const &i : nums) v.push_back(to_string(i));
|
||||||
|
sort(v.begin(), v.end(), [](string &a, string &b) {
|
||||||
|
return a + b > b + a;
|
||||||
|
});
|
||||||
|
string ret;
|
||||||
|
for (auto const &s : v) ret += s;
|
||||||
|
// 处理 ["0", "0", "0"] 的情况
|
||||||
|
return ret.startswith('0') ? "0" : ret;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
Note:
|
||||||
|
|
||||||
|
```python
|
||||||
|
'1' + '3' < '2' # True
|
||||||
|
'1' + '3' < '22' # True
|
||||||
|
'1' < '11' # True
|
||||||
|
'1' + '0' == '10' # True
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 179. Largest Number
|
||||||
|
|
||||||
|
Python 版本
|
||||||
|
|
||||||
|
```python [|4|5-7|8]
|
||||||
|
from functools import cmp_to_key
|
||||||
|
class Solution:
|
||||||
|
def largestNumber(self, nums: List[int]) -> str:
|
||||||
|
strs = [str(i) for i in nums]
|
||||||
|
strs.sort(key = cmp_to_key(
|
||||||
|
lambda a, b: -1 if a + b > b + a else 1
|
||||||
|
))
|
||||||
|
return '0' if strs[0] == '0' else ''.join(strs)
|
||||||
|
```
|
||||||
|
|
||||||
|
Note:
|
||||||
|
|
||||||
|
思路和刚刚的 c++ 是一样的,但我主要想给各位介绍一下python的写法,
|
||||||
|
因为我看群里用python的人还是不少的,当然这种写法是好是坏见仁见智了,我个人认为是比较好的。
|
||||||
|
|
||||||
|
4 首先我们用这个列表生成式将nums转为字符串strs, strs 是一个列表,列表中的每个元素是str(i),i是遍历nums得到的变量。
|
||||||
|
|
||||||
|
5-7 接着对strs进行排序,这个cmp to key 是python3的设计,他把一个比较用来比较大小的函数变成key函数,
|
||||||
|
这个比较函数做什么呢,他输入两个变量,如果a+b比b+a大,则这个比较函数返回-1,否则返回1,注意这里a和b的类型
|
||||||
|
都是字符串,a+b表示的是字符串a和字符串b拼接之后的结果
|
||||||
|
|
||||||
|
8 最后用一个三元表达式返回结果,和上面c++的思路是一样的,
|
||||||
|
注意这又有一个python好用的方法,字符串.join,后面跟一个数组,
|
||||||
|
意思是把这个数组用空字符串拼接起来
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 347. Top K Frequent Element
|
||||||
|
|
||||||
|
```cpp [|4-6|8-13|15-19|21-28]
|
||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
vector<int> topKFrequent(vector<int>& nums, int k) {
|
||||||
|
unordered_map<int, int> count;
|
||||||
|
for (auto const &n : nums)
|
||||||
|
count[n]++;
|
||||||
|
|
||||||
|
// 将 map 转为列表
|
||||||
|
// [(0, 5), (1, 3), ... ]
|
||||||
|
// 代表数字 0 出现 5 次,数字 1 出现 3 次
|
||||||
|
vector<pair<int, int>> tmp;
|
||||||
|
for (auto const &pair : count)
|
||||||
|
tmp.push_back(pair);
|
||||||
|
|
||||||
|
sort(tmp.begin(), tmp.end(), [](
|
||||||
|
const pair<int, int> &a,
|
||||||
|
const pair<int, int> &b) {
|
||||||
|
return a.second > b.second;
|
||||||
|
});
|
||||||
|
|
||||||
|
vector<int> ret;
|
||||||
|
for (auto const &pair : tmp) {
|
||||||
|
if (ret.size() >= k)
|
||||||
|
break;
|
||||||
|
ret.push_back(pair.first);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 347. Top K Frequent Element
|
||||||
|
|
||||||
|
Python 版本
|
||||||
|
|
||||||
|
```python [4-5]
|
||||||
|
import collections
|
||||||
|
class Solution:
|
||||||
|
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
|
||||||
|
count = collections.Counter(nums).most_common(k)
|
||||||
|
return [i[0] for i in count]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 75. Sort Colors
|
||||||
|
|
||||||
|
C++
|
||||||
|
|
||||||
|
```cpp [|2-5|6|7-11|12-14|15-18]
|
||||||
|
void sortColors(vector<int> &nums) {
|
||||||
|
auto low = nums.begin();
|
||||||
|
auto high = nums.end() - 1;
|
||||||
|
|
||||||
|
for (auto mid = nums.begin(); mid <= high;) {
|
||||||
|
switch (*mid) {
|
||||||
|
case 0:
|
||||||
|
swap(*mid, *low);
|
||||||
|
mid++;
|
||||||
|
low++;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
mid++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
swap(*mid, *high);
|
||||||
|
high--;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user