- 博客(222)
- 收藏
- 关注
原创 第七章 类、结构体、指针与引用
使用且的时候,第一个条件为假的话,直接跳过第二个条件的判断。1.13 链表的删除节点不是传统意义上的真删除,而是将待删除的节点跳过。步骤是当前节点要找到上一个节点,然后将当前节点的上一节点指向当前节点的下一节点。1.忽略所有行首空格,找到第一个非空格字符,可以是 ‘+/−’ 表示是正数或者负数,紧随其后找到最长的一串连续数字,将其解析成一个整数;在一个排序的链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点不保留。定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
2023-08-23 17:55:48
271
原创 web前端开发基础入门html5+css3+js学习笔记(一)
目录1.第一个前端程序2.前端工具的选择与安装3.VSCode开发者工具快捷键4.HTML5简介与基础骨架4.1 HTML5的DOCTYPE声明4.2 HTML5基本骨架4.2.1 html标签4.2.2 head标签4.2.3 body标签4.2.4 title标签4.2.5 meta标签5.标签之标题5.1 快捷键5.1 标题标签位置摆放6.标签之段落、换行、水平线6.1 标签之段落6.2换行6.3 水平线7.标签之图片8.图片路径详解8.1 绝对路径8.2 相对路径8.2.1 子级`/`8.2.2 父
2023-08-16 22:54:01
929
原创 ubuntu下的vscode的安装、配置(C++,python,java)
目录1. 安装2.配置C++(CMake版)2.1 准备工作2.2 写launch.json文件调试2.3 自动化编译写tasks.json3.配置Python3.1 安装插件,预备源代码3.2 调试写launch.json文件4.配置Java1. 安装两种安装方法https://www.cnblogs.com/lwp-king666/p/10513382.html,为什么推荐这两种方法呢?因为后续卸载升级方便。有一次我安装VsCode用了冷门的命令,结果时间一长都忘记了,只能暴力卸载误删了很多东西。
2022-01-16 22:30:38
1880
原创 第六章 函数
目录1.基础知识2.练习题2.1 n的阶乘2.2 x和y的最大值2.3 最大公约数2.4 交换数值2.5 打印数字2.6 打印矩阵2.7 递归求阶乘2.8 递归求斐波那契数列2.9 绝对值2.10 两个数的和2.11 区间求和2.12 最小公倍数2.13 复制数组2.14 打印字符串2.15 数组翻转2.16 数组去重2.17 数组排序2.18 跳台阶2.19 走方格2.20 排列1.基础知识1.函数调用自己叫递归2.函数数组传递属于引用传递,也就是说,修改函数数组里的数值会发生改变;3.函数在
2022-01-07 22:08:04
1213
1
原创 第四讲 数组
目录1.基础知识目录目录1.基础知识1.1 没有初始化的数组里面的数值,是随机化的。1.2 c++默认开的栈空间是1兆,如果全用满,例如有1百万个数据就会存满了。一个int数据4个字节,1百万个数据就是4兆。因此,把数组变量放在函数外面,成一个全局变量,全局变量是存在于堆空间里的。函数内部不要定义很长的数组。1.3 定义在函数外面的数组,编译器初始化全是0,不同于定义在函数里的数组,编译器初始化为随机数。1.4 数组下标从0开始目录目录...
2021-11-28 01:25:12
2194
原创 第三讲 循环结构
目录经典题型1.1 斐波那契数列1.2 打印宝塔经典题型1.1 斐波那契数列【分析】通过上面分析,f(n)f(n)f(n)需要循环n−1n-1n−1次1.2 打印宝塔
2021-08-02 00:02:41
761
原创 第二讲 判断语句
目录1.倍数2.零食3.区间4.三角形1.倍数读取两个正整数值 A 和 B。如果其中一个是另一个的整数倍,则输出 Sao Multiplos,否则输出 Nao sao Multiplos。输入格式共一行,两个整数 A 和 B。输出格式按题目所述,输出结果。数据范围0<A,B<100输入样例:6 24输出样例:Sao Multiplos#include <iostream>using namespace std;int main (){ in
2021-04-23 21:39:06
974
原创 第一讲 变量、输入输出、表达式与顺序语句
输入两个整数,求这两个整数的和是多少。输入格式输入两个整数A,B,用空格隔开,0≤A,B≤108输出格式输出一个整数,表示这两个数的和样例输入:3 4样例输出:7#include <iostream>using namespace std;int main(){ int a, b; cin >> a >> b; cout << a + b << endl; return 0;
2021-03-08 22:14:40
584
原创 PyCharm模板代码
在File->Settings->Editor->File and Code Templates里,选择Python Script#!~/anaconda3/envs/pytorch/bin/python3.7# -*- coding: UTF-8 -*- #"""@author:${USER}@file:${NAME}.py@time:${YEAR}/${MONTH}/${DAY}"""if __name__ == "__main__": pass说明1.
2021-03-03 16:03:26
570
1
原创 754. 平方矩阵 II
输入整数N,输出一个N阶的二维数组。数组的形式参照样例。输入格式输入包含多行,每行包含一个整数N。当输入行为N=0时,表示输入结束,且该行无需作任何处理。输出格式对于每个输入整数N,输出一个满足要求的N阶二维数组。每个数组占N行,每行包含N个用空格隔开的整数。每个数组输出完毕后,输出一个空行。数据范围0≤N≤100输入样例:123450输出样例:11 22 11 2 32 1 23 2 11 2 3 42 1 2 33 2 1 24 3 2 11 2
2021-03-01 23:27:47
126
原创 1341. 十三号星期五
十三号星期五真的很不常见吗?每个月的十三号是星期五的频率是否比一周中的其他几天低?请编写一个程序,计算 N年内每个月的 13号是星期日,星期一,星期二,星期三,星期四,星期五和星期六的频率。测试的时间段将会开始于 1900年 1 月 1 日,结束于 1900+N−1 年 12 月 31日。一些有助于你解题的额外信息:1900年 1 月 1日是星期一。在一年中,4月、6 月、9 月、11 月每个月 30 天,2 月平年 28 天,闰年 29天,其他月份每个月31天。公历年份是
2021-02-27 15:45:02
116
原创 1532. 找硬币
伊娃喜欢从整个宇宙中收集硬币。有一天,她去了一家宇宙购物中心购物,结账时可以使用各种硬币付款。但是,有一个特殊的付款要求:每张帐单,她只能使用恰好两个硬币来准确的支付消费金额。给定她拥有的所有硬币的面额,请你帮她确定对于给定的金额,她是否可以找到两个硬币来支付。输入格式第一行包含两个整数 N 和 M,分别表示硬币数量以及需要支付的金额。第二行包含 N 个整数,表示每个硬币的面额。输出格式输出一行,包含两个整数 V1,V2,表示所选的两个硬币的面额,使得 V1≤V2 并且 V1+V2=M。如
2021-02-02 00:45:08
105
原创 1208. 翻硬币
小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式一个整数,表示最小操作步数数据范围输入
2021-01-31 23:29:24
98
原创 429. 奖学金
某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中
2021-01-31 10:09:25
173
原创 422. 校门外的树
方法一(传统暴力)#include <iostream>using namespace std;const int N = 100010;int n, m;bool tree[N];int main(){ cin >> n >> m; for(int i = 0; i < m; i ++) { int l, r; cin >> l >> r;
2021-01-31 08:49:43
70
原创 1227. 分巧克力
儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输入格式第一行包含两个整数 N 和 K。以
2021-01-30 14:47:03
71
原创 680. 剪绳子
有N根绳子,第i根绳子长度为Li,现在需要M根等长的绳子,你可以对N根绳子进行任意裁剪(不能拼接),请你帮忙计算出这M根绳子最长的长度是多少。输入格式第一行包含2个正整数N、M,表示原始绳子的数量和需求绳子的数量。第二行包含N个整数,其中第 i 个整数Li表示第 i 根绳子的长度。输出格式输出一个数字,表示裁剪后最长的长度,保留两位小数。数据范围1≤N,M≤100000,0<Li<109输入样例:3 43 5 4输出样例:2.50样例解释第一根和第三根分别裁剪出一根
2021-01-27 20:28:55
110
原创 1346. 回文平方
如何将(n)10进制的数转化为b进制数?短除法怎么判断一个数字是回文数?用双指针算法。#include <iostream>#include <algorithm>#include <cstring>using namespace std;char get(int x){ if(x <= 9) return x + '0'; else return x - 10 + 'A';}string base(int n, int
2021-01-27 16:44:29
74
原创 1113. 红与黑
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合
2021-01-21 20:00:22
83
原创 756. 蛇形矩阵
输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式输入共一行,包含两个整数n和m。输出格式输出满足要求的矩阵。矩阵占n行,每行包含m个空格隔开的整数。数据范围1≤n,m≤100输入样例:3 3输出样例:1 2 38 9 47 6 5拓展题:1104presentation error...
2021-01-21 14:01:32
89
原创 898. 数字三角形
给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 88 1 02 7 4 44 5 2 6 5输入格式第一行包含整数n,表示数字三角形的层数。接下来n行,每行包含若干整数,其中第 i 行表示数字三角形第 i 层包含的整数。输出格式输出一个整数,表示最大的路径数字和。数据范围1≤n≤500,−10000≤三角形中的
2021-01-17 00:21:49
109
1
原创 104. 货仓选址
在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数N。第二行N个整数A1~AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000,0≤Ai≤40000输入样例:46 2 9 1输出样例:12结论:如果N是偶数,最近的距离为最中间两点之间任何一点;如果N是奇数,最近的距离为最中间
2021-01-15 23:55:00
104
原创 LeetCode 42. 接雨水
方法一:(三次循环)当前柱子上方能积多少水,取决于三个变量,当前高度height[i],左边最高高度left_max[i],右边最高高度right_max[i]。积的水取决于min(left_max[i], right_max[i]) - height[i]0和n需要特判class Solution {public: int trap(vector<int>& height) { int n = height.size(),ans = 0;
2020-12-05 23:41:55
110
2
原创 ubuntu18简单安装Spark3,pySpark,scala, SBT和java11
目录0.环境说明1.安装Java2.安装Scala和SBT3.安装Spark30.环境说明本机ubuntu18,python3是anaconda的,之前要安装java环境和scala1.安装Java阅读Scala官方安装教程,需要Java11或者Java8的环境, Scala地址。我选择安装Java11.(我采用非源码默认版本安装,ubuntu18极其以上系统都行)。链接: 其他安装方式参考.sudo apt-get update#安装OpenJDK,这是Java运行的环境sudo apt i
2020-11-17 23:34:25
640
原创 LeetCode 41. 缺失的第一个正数
class Solution {public: int firstMissingPositive(vector<int>& nums) { unordered_set<int> hash; for(auto x: nums) hash.insert(x); int res = 1; while(hash.count(res)) res ++; return res; }};
2020-11-17 09:52:08
53
原创 LeetCode 40. 组合总和 II
class Solution {public: vector<vector<int>> ans; vector<int> path; vector<vector<int>> combinationSum2(vector<int>& candidates, int target) { sort(candidates.begin(), candidates.end());
2020-11-17 09:34:33
52
原创 LeetCode 39. 组合总和
class Solution {public: vector<vector<int>> ans; vector<int> path; vector<vector<int>> combinationSum(vector<int>& candidates, int target) { dfs(candidates, 0, target); return ans; }
2020-11-16 21:33:41
47
原创 LeetCode 38. 外观数列
class Solution {public: string countAndSay(int n) { string s = "1"; for(int i = 0; i < n - 1; i ++) { string t; // 双指针算法 for(int j = 0; j < s.size();) { int
2020-11-16 18:09:48
103
原创 LeetCode 37. 解数独
class Solution {public: bool row[9][9], col[9][9], cell[3][3][9]; void solveSudoku(vector<vector<char>>& board) { memset(row, 0, sizeof row); memset(col, 0, sizeof col); memset(cell, 0, sizeof cell);
2020-11-16 16:49:58
56
原创 LeetCode 36. 有效的数独
class Solution {public: bool isValidSudoku(vector<vector<char>>& board) { bool st[9]; // 判断行 for(int i = 0; i < 9; i ++) { memset(st, 0, sizeof st); for(int j = 0; j < 9; j
2020-11-16 10:22:16
76
原创 LeetCode 35. 搜索插入位置
class Solution {public: int searchInsert(vector<int>& nums, int target) { if(nums.empty()) return 0; int l = 0, r = nums.size() - 1; while(l < r) { int mid = l + r >> 1; if(num
2020-11-15 19:00:40
2457
原创 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { if(nums.empty()) return {-1, -1}; int l = 0, r = nums.size() - 1; while(l < r) { int mid = l + r >>
2020-11-15 18:44:43
53
原创 LeetCode 33. 搜索旋转排序数组
class Solution {public: int search(vector<int>& nums, int target) { if(nums.empty()) return -1; int l = 0, r = nums.size() - 1; // 寻找两端数组的边界 while(l < r) { int mid = l + r + 1 >> 1
2020-11-15 17:54:18
59
原创 LeetCode 32. 最长有效括号
左右括号匹配:1.整个序列左右括号数量相等2.任意子序列中,左括号数量大于等于右括号数量性质:任何合法的序列不会横跨右括号数量大于左括号数量的子区间。证明:思路:1.怎么去分段?找到一段,右括号数量大于左括号数量的2.枚举以右括号为右端点,最长的左括号的长度。然后在这些长度里最长的结果就是所求问题:怎么去找最长的左括号长度呢class Solution {public: int longestValidParentheses(string s) { st
2020-11-15 15:56:38
67
原创 LeetCode 31. 下一个排列
思路:1.从后往前遍历,找到第一个升序2.如果没有,把原排列翻转一下3.如果有,在后面的序列中找到比[k-1]大,但比[k]小的数class Solution {public: void nextPermutation(vector<int>& nums) { int k = nums.size() - 1; while(k > 0 && nums[k - 1] >= nums[k]) k --;
2020-11-11 10:52:04
58
原创 LeetCode 30. 串联所有单词的子串
复杂度O(w*n),n是s串的长度(s.size()),w是word的长度(words[0].size()),m是有几个word(words.size())枚举起始位置,理论上O(n)个算法复杂度O(n/w * w * w),首先分组n/w,哈希插入弹出w,总共有w组 (如果是字符串哈希是O(n)的)如何判断两个集合相等?两个措施,看集合(哈希表)里单词的数量是不是相等;再引入一个外部变量,统计总单词个数。class Solution {public: vector<int>
2020-11-09 12:49:53
143
原创 LeetCode 29. 两数相除
首先想到的做法。设x是被除数,y是除数,x-y循环减,并计数,直到x<y停止。那么计的数就是商。如果x=2^31, y=1。那么计算的时间复杂度完全没有办法接受。将商表示为二进制,那么运算复杂度最多可以减少至31次。class Solution {public: int divide(int dividend, int divisor) { typedef long long LL; bool is_minus = false; if(d
2020-10-29 19:28:12
54
原创 LeetCode 28. 实现 strStr()
class Solution {public: int strStr(string haystack, string needle) { if(needle.empty()) return 0; int m = haystack.size(), n = needle.size(); haystack = ' ' + haystack, needle = ' ' + needle; vector<int> ne(n +
2020-10-28 21:59:00
53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人