目录

  • 饭后小甜点leetcode——哈希表
    • 242. Valid Anagram
    • 1. Two Sum

饭后小甜点leetcode——哈希表

持续更新中。。。

242. Valid Anagram

Given two strings s and t , write a function to determine if t is an anagram of s.

Example 1:

Input: s = “anagram”, t = “nagaram”
Output: true
Example 2:

Input: s = “rat”, t = “car”
Output: false
Note:
You may assume the string contains only lowercase alphabets.
思路:
这个题意思说,判断这两字符串是不是只是字母顺序不同,其他个数啥的都相同。一开始我用Dictionary,代码写出来风格不堪入目。。。然后突然发现一种巧妙的办法,要想达到两个字符串平衡,第一个字符串中每个字符对应count++,第二个字符串中每个字符对应count–,这样的话,可以保证两字符串中相同字母的个数相同。
代码(C#):

public class Solution {public bool IsAnagram(string s, string t) {if (s.Length != t.Length){return false;}var counter = new int[26];for (var i = 0; i < s.Length; i++){counter[s[i] - 'a']++;counter[t[i] - 'a']--;}foreach (var c in counter){if (c != 0){return false;}}return true;}
}

1. Two Sum

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
思路:
一种方法当然是n2的暴力破解,但若使用Dictionary,会节省很多时间。挨个儿把数字放到dictionary里面,key为数字本身,value为数字在数组中的下标,在放进去之前,如果target与当前数字的差已经在dictionary里面了,那么就返回这两数的下标,否则就把这个数字放进去,放进去之前需要检查是否这个数字已经存在,否则c#会报错。
代码(C#):

public class Solution {public int[] TwoSum(int[] nums, int target) {var map = new Dictionary<int, int>();for(var i = 0;i < nums.Length;i++){var rest = target - nums[i];if(map.ContainsKey(rest)){return new int[]{map[rest], i};}if(!map.ContainsKey(nums[i])){map.Add(nums[i], i);}}return null;}
}

饭后小甜点leetcode——哈希表相关推荐

  1. 七十五、Python | Leetcode哈希表系列

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  2. python leetcode_七十五、Python | Leetcode哈希表系列

    @Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  3. LeetCode哈希表(哈希集合,哈希映射)

    文章目录 哈希表 1.原理 2.复杂度分析 题目&推荐列表 哈希集合的应用 0.常用解题模板 1.lc217 存在重复元素 2.lc136 只出现一次的数字 3.快乐数 哈希映射的应用 0.常 ...

  4. 两数之和(LeetCode)——哈希表法(C语言)

    上一篇文章留了个引子--用"哈希表"法来解决这个问题. 今天,我们来解决一下.为什么用哈希表法?很简单因为它--快! 讲解之前我们先来提出几个问题? 1)什么是"哈希表& ...

  5. LeetCode——哈希表经典例题

    242. 有效的字母异位词   给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词.注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示 ...

  6. leetcode哈希表解决异位词问题

    哈希表 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存储存位置的数据结构. 它通过计算出一个键值的函数(hash function),将所需查询的数据映射到表中一个位置 ...

  7. 算法小讲堂之哈希表|散列表|考研笔记

    文章目录 一. 基本概念 二. 哈希函数|散列函数 2.1 直接定址法 2.2 保留余数法 2.3 数字分析法 2.4 平方取中法 2.5 折叠法 2.6 随机数法 三.冲突处理 3.1 开放定址法 ...

  8. leetcode哈希表(python与c++)

    1.整数转罗马数字 python: class Solution:def intToRoman(self, num: int) -> str:dict_ = {1000:'M', 900:'CM ...

  9. 找第一个只出现一次的字符_leetcode哈希表之第一个只出现一次的字符

    序 本文主要记录一下leetcode哈希表之第一个只出现一次的字符 题目 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母.示例:s = "abac ...

  10. 哈希表存在的问题及解决方案

    一.哈希表 哈希表,也称散列表,英文名称Hash Table.是根据关键码值(Key value)而直接进行访问的数据结构,也就是说通过把关键码值映射到表中一个位置来访问记录以便加快查找的速度.这个映 ...

最新文章

  1. pytorch线性模型的基础使用
  2. springBoot搭建activiti工作流
  3. Agile Development
  4. hdu6380(2018 “百度之星”程序设计大赛 - 初赛(B))
  5. perl中-和=作用
  6. SolarWinds 攻击者开发的新后门 FoggyWeb
  7. RSA加密:javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes
  8. uniapp 安装uView-ui教程
  9. 《亲密关系》读书笔记
  10. 中国科学家首次解析人脑“中央处理器”,领先美国脑计划
  11. 【USACO19FEB】Mowing Mischief P(决策单调性)(线段树辅助分治)
  12. 人生=亲情+爱情+金钱+理想+友情?
  13. nginx实现静态文件的token认证
  14. 【PowerDesigner】UML建模
  15. 【51单片机】(手把手教你)串口通信-基础篇
  16. 现代微服务拆分与设计
  17. C++ nth_element 介绍
  18. 物联网设备数据流转之数据如何存储:TDengine集成SpringBoot, MyBatisPlus实现ORM与CRUD
  19. 《无线网络:理解和应对互联网环境下网络互连所带来的挑战》——3.2 ZigBee...
  20. 我和小伙伴们一起学Unity3D(六)碰撞与触发器

热门文章

  1. 【完美解决方案】Error during artifact deployment. See server log for details.
  2. Gradle dependencies 解决项目依赖冲突
  3. C++11 decay
  4. 开发一款游戏引擎需要的知识与技术
  5. 用友u8系统管理服务器,用友U8服务软件建立新账套的教程
  6. 07、自己写库—构建库函数雏形
  7. Pisces-Mini-Program 微信QQ通用Typecho小程序
  8. 定向灰盒fuzzing工具BEACON
  9. 经常眩晕,可能是不痛的偏头痛
  10. Centos7上搭建迅雷远程下载服务器