移除元素-每天1LeetCode
题目
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:
更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
返回 k。
用户评测:
评测机将使用以下代码测试您的解决方案:
123456789101112int[] nums = [...]; // 输入数组int val = ...; // 要移除的值int[] expectedNums = [...]; // 长度正确的预期答案。 // 它以不等于 val 的值排序。int k = removeElement(nums, val); // 调用你的实现assert k == expectedNums.length;sort(nums, 0, k); // 排序 nums 的前 k 个元素for (int ...
删除有序数组中的重复项-每天1LeetCode
题目
给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:
更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
返回 k 。
判题标准:
系统会用下面的代码来测试你的题解:
123456789int[] nums = [...]; // 输入数组int[] expectedNums = [...]; // 长度正确的期望答案int k = removeDuplicates(nums); // 调用assert k == expectedNums.length;for (int i = 0; i < k; i++) { assert nums[i] == expectedNums[i];}
如果所有断言都通过,那么您的 ...
有效的括号-每日1LeetCode
题目
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
12输入:s = "()"输出:true
示例 2:
12输入:s = "()[]{}"输出:true
示例 3:
12输入:s = "(]"输出:false
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
初步解法
用栈保存括号左侧,遇到括号右侧比较一下,最后再比较栈是否为空即可。
12345678910111213141516171819202122232425262728293031323334353637#include <string>#include <stack>using namespace std;class Soluti ...
CMAKE学习笔记
什么是CMake
众所周知,软件是代码经过编译器编译之后的产物,也就是说一个软件要在多个平台运行的话就要能够通过这些平台的编译.而每个平台所使用的编译标准都不一样,就导致如果你要发布一个跨平台的应用,就需要为这些平台都编写独立的文件,这工作量显然是不现实的.
所以就需要一种无视平台的编译流程,CMake差不多就是为用户根据平台准备编译条件的东西.
根据我之前的使用经验,使用CMake差不多是下面的流程
编写CMake配置文件CMakeLists.txt(注意大小写)
执行命令cmake PATH或者
最长公共前缀-每日1LeetCode
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
12输入:strs = ["flower","flow","flight"]输出:"fl"
示例 2:
123输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
解法
123456789101112131415161718192021222324252627#include <vector>#include <string>using namespace std;class Solution {public: string longestC ...
罗马数字转整数-每日1LeetCode
题目
罗马数字包含以下七种字符: I,V,X,L,C,D 和 M。
12345678字符 数值I 1V 5X 10L 50C 100D 500M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 ...
回文数-每天1LeetCode
题目
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例 1:
12输入:x = 121输出:true
示例 2:
123输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
123输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。
提示:
-231 <= x <= 231 - 1
进阶:你能不将整数转为字符串来解决这个问题吗?
基础解法
使用索引的解法
1234567891011121314151617181920212223#include <string>using namespace std;class Solution {public: bool isPalindrome(int x) { // 特定值是回文数 if ...
两数相加-每天1LeetCode
题目
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
123输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
12输入:nums = [3,2,4], target = 6输出:[1,2]
示例 3:
12输入:nums = [3,3], target = 6输出:[0,1]
提示:
12342 <= nums.length <= 104-109 <= nums[i] <= 109-109 <= target <= 109只会存在一个有效答案
进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?
解法一
1234567891011121314151617181920212223#include &l ...
年轻人到底要怎样活着
从小到大我只感觉一种反差感,
对现实和梦想的反差.
我从小在小县城里长大,数学成绩一直不好.但是支撑我最初走进现在的游戏行业的是梦想,支撑我就算不想学数学,为了能够看懂代码也要学好数学.
就这样,我从一个注定要上大专的人努力成了能够上得起本科的人.
在大学之前我一直梦想着能够靠着努力出人头地,这么长时间以来我一直在学着正常人所不想学的东西,想要靠着不一样的东西出众.
这也是为什么高中的时候别人在想怎么玩,我在独自抱着<C语言从入门到精通>啃,事实证明这段经历也造就了我异于常人的性格.
上了大学以后,最开始我也在随波逐流,但是自从想起小时候的梦想是做出一款让大众认可的游戏,我又在努力的学游戏开发的知识,所以又开始了那种异于常人的生活.
然而现在毕业之后,我却感到迷茫.
因为家里的变故,我不得不面对现实.
现实是什么?现实就是作为一个山东人,我要承担起家庭责任,要赶快买房买车,接着结婚生孩子.
但是对我来说,这就是桎梏.
我之前所作的努力,将近10年的努力,如果就一辈子活在小县城里,是不是等于我的这些时间与精力就都浪费了呢?
而且认识的同学,朋友都去了大城市发展,也都过上了自己 ...
解决通义灵码抽风显示无权限的问题
问题描述
由于公司不方便科学上网,所以一直没用copilot,而用的是阿里的通义灵码,截止到目前(2024/7/8)还是限时免费,(虽然说距离我开始用的时候已经过去将近一年了).
但是今天在打开vscode的时候发现通义灵码直接给提示无权限了,尝试退出后登录无果,显示通义灵码域名无法解析.
解决方案
打开任务管理器,杀掉Lingma.exe进程,之后关闭你的IDE(无论是VsCode还是Idea),前往C:\Users\你目前使用的用户删除掉.Lingma这一整个目录,之后重启IDE登录即可