LeetCode算法题(C#版)

两数之和

方法一:暴力枚举

cs 复制代码
class Solution {
    public int[] TwoSum(int[] nums, int target) {
        for(int i=0;i<nums.Length;i++){
            for(int j=i+1;j<nums.Length;j++){
                if(nums[i]+nums[j]==target){
                    return new int[]{i,j};
                }
            }
        }
        return new int[0];
    }
}

方法二:C#知识中的字典

cs 复制代码
class Solution {
    public int[] TwoSum(int[] nums, int target) {
        Dictionary<int, int> hashtable = new Dictionary<int, int>();
        for (int i = 0; i < nums.Length; ++i) {
            if (hashtable.ContainsKey(target - nums[i])) {
                return new int[]{hashtable[target - nums[i]], i};
            }
            hashtable[nums[i]]=i;
        }
        return new int[0];
    }
}
回文数

代码

cs 复制代码
public class Solution {
    public bool IsPalindrome(int x) {
        int revertedNumber=0;
        if(x<0||(x>0&&x%10==0)){
            return false;
        }
        while(x>revertedNumber){
            revertedNumber=revertedNumber*10+x%10;
            x=x/10;
        }
        return x==revertedNumber||x==revertedNumber/10;
    }
}
罗马数组转整数

代码

cs 复制代码
public class Solution {
    public int RomanToInt(string s) {
        Dictionary<char,int> romanToInt=new Dictionary<char,int>();
        romanToInt.Add('I',1);
        romanToInt.Add('V',5);
        romanToInt.Add('X',10);
        romanToInt.Add('L',50);
        romanToInt.Add('C',100);
        romanToInt.Add('D',500);
        romanToInt.Add('M',1000);
        int answer=0;
        for(int i=0;i<s.Length;i++){
            int value=romanToInt[s[i]];
            if(i<s.Length-1&&value<romanToInt[s[i+1]]){
                answer-=value;
            }
            else{
                answer+=value;
            }
        }
        return answer;
    }
}
构成整天的下标对数目I

代码

和两数之和的逻辑相同

cs 复制代码
public class Solution {
    public int CountCompleteDayPairs(int[] hours) {
        int sum=0;
        for(int i=0;i<hours.Length;i++){
            for(int j=i+1;j<hours.Length;j++){
                if((hours[i]+hours[j])%24==0){
                    sum++;
                }
            }
        }
        return sum;
    }
}
相关推荐
@老蝴2 小时前
C语言 — 通讯录模拟实现
c语言·开发语言·算法
L-ololois2 小时前
【AI】模型vs算法(以自动驾驶为例)
人工智能·算法·自动驾驶
代码写到35岁3 小时前
Jenkins自动发布C# EXE执行程序
运维·c#·jenkins
安全系统学习4 小时前
网络安全之RCE简单分析
开发语言·python·算法·安全·web安全
yutian06065 小时前
C# 支持 ToolTip 功能的控件,鼠标悬停弹提示框
开发语言·microsoft·c#
TGB-Earnest5 小时前
【leetcode-合并两个有序链表】
javascript·leetcode·链表
GEEK零零七5 小时前
Leetcode 3299. 连续子序列的和
算法·leetcode·动态规划
飞飞是甜咖啡5 小时前
【机器学习】Teacher-Student框架
人工智能·算法·机器学习
蒟蒻小袁6 小时前
力扣面试150题--单词接龙
算法·leetcode·面试
ghie90906 小时前
LMD分解通过局部均值分解重构信号实现对信号的降噪
算法·均值算法·重构