OJ题
OJ是Online Judge系统的简称,用来在线检测程序源代码的正确性。
程序员s1mple
这个作者很懒,什么都没留下…
展开
-
415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。class Solution {public: //相加函数 int AddItem(int a,int b,int &sign) { int sum=a+b+sign; if(sum>=10) { sum=sum-10; sign=1; } else .原创 2021-05-12 17:14:56 · 553 阅读 · 0 评论 -
LeetCode125. 验证回文串
验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: falseclass Solution {public: //判断是否为字母和数字 bool IsLetter(char ch) { if(ch>='A'&.原创 2021-05-12 17:00:25 · 169 阅读 · 0 评论 -
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。#include <iostream>using namespace std;//获取最后一个单词的长度int GetlengthOfLastword(const string &s1){ int rindex=s1.rfind(' ');//反向查找空格 return s1.size()-rindex-1;//最后一个单词的长度为s1.size()-rindex-1}int main()原创 2021-05-12 16:48:52 · 2478 阅读 · 0 评论 -
LeetCode387. 字符串中的第一个唯一字符
字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2暴力解法:int j; for(int i=0;i<s.size();i++) { for(int j=0;j<s.size();j++) { //如果i==j说明他是同一个字符 if(i==j) { .原创 2021-05-11 22:19:19 · 98 阅读 · 0 评论 -
LeetCode917. 仅仅反转字母
给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1:输入:“ab-cd”输出:“dc-ba”示例 2:输入:“a-bC-dEf-ghIj”输出:“j-Ih-gfE-dCba”示例 3:输入:“Test1ng-Leet=code-Q!”输出:“Qedo1ct-eeLg=ntse-T!”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-only-letters原创 2021-05-11 21:48:06 · 136 阅读 · 0 评论 -
LeetCode 21.合并两个有序链表。 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-listsstruct ListN原创 2021-01-31 16:29:50 · 453 阅读 · 1 评论 -
剑指offer :输入一个链表,输出该链表中倒数第k个结点。
题目描述输入一个链表,输出该链表中倒数第k个结点。struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) { // write code here struct ListNode*fast=pListHead,*slow=pListHead; while(k--) { if(fast ==NULL) { return NULL;原创 2021-01-31 16:08:55 · 77 阅读 · 0 评论 -
LeetCode 876.链表的中间节点。 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。
给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NU原创 2021-01-31 15:53:02 · 372 阅读 · 0 评论 -
LeetCode 203.移除链表元素。 删除链表中等于给定值 val 的所有节点。
删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5代码struct ListNode* removeElements(struct ListNode* head, int val){ if(head ==NULL) { return head; } struct ListNode* newhe原创 2021-01-31 15:36:57 · 153 阅读 · 0 评论 -
LeetCode 206.反转一个单链表。
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路代码struct ListNode* reverseList(struct ListNode* head){ if (head == NULL || head->next == NULL) { return head; } struct ListNode* n1 = NULL, *n2 = NU原创 2021-01-31 15:02:07 · 82 阅读 · 0 评论 -
LeetCode 27.移除元素。 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-element示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函原创 2021-01-29 15:09:42 · 437 阅读 · 0 评论 -
LeetCode 88.合并两个有序数组。 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1 = [1], m =原创 2021-01-29 12:26:36 · 710 阅读 · 1 评论 -
LeetCode 26.删除排序数组中的重复项。 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 nums 的原创 2021-01-29 12:07:22 · 174 阅读 · 0 评论 -
LeetCode189.旋转数组。 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入原创 2021-01-29 11:41:39 · 205 阅读 · 0 评论 -
LeetCode 989:数组形式的整数加法。 对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。示例 1:输入:A = [1,2,0,0], K = 34输出:[1,2,3,4]解释:1200 + 34 = 1234示例 2:输入:A = [2,7,4], K = 181输出:[4,5,5]解释:274 + 181 = 455示例 3:输入:A = [2,1,5], K =原创 2021-01-29 11:02:45 · 409 阅读 · 0 评论