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;
    }
}
相关推荐
Mr.L7051725 分钟前
Maui学习笔记- SQLite简单使用案例02添加详情页
笔记·学习·ios·sqlite·c#
格林威2 小时前
BroadCom-RDMA博通网卡如何进行驱动安装和设置使得对应网口具有RDMA功能以适配RDMA相机
人工智能·数码相机·opencv·计算机视觉·c#
fks1433 小时前
leetcode 2412. 完成所有交易的初始最少钱数
leetcode
迪小莫学AI3 小时前
【力扣每日一题】LeetCode 2412: 完成所有交易的初始最少钱数
算法·leetcode·职场和发展
c++初学者ABC3 小时前
蓝桥杯LQ1044 求完数
c++·算法·lq蓝桥杯
.zhy.3 小时前
《挑战程序设计竞赛2 算法和数据结构》第二章实现
java·数据结构·算法
Catherinemin4 小时前
剑指Offer|LCR 045.找树左下角的值
javascript·算法
_GR4 小时前
2013年蓝桥杯第四届C&C++大学B组真题及代码
c语言·数据结构·c++·算法·蓝桥杯
记得早睡~4 小时前
leetcode28-找出字符串中第一个匹配的下标
数据结构·算法·leetcode
.NET骚操作4 小时前
Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到 Guid
ai·c#·.net·chats