首页 文章 精选 留言 我的

精选列表

搜索[数字版权管理],共10000篇文章
优秀的个人博客,低调大师

LeetCode 136:只出现一次的数字 Single Number

题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 Given a non-empty array of integers, every element appears twice except for one. Find that single one. 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 解题思路: 排序数组,如果某个数与前后两个数均不相等则该数只出现一次。 哈希映射,key 为每个数的值,value 为每个数出现的频率。最后找到 value = 1 的数返回。 异或运算,直接进行异或操作求值。不使用额外空间。 异或运算(XOR)解题是最优雅的解法,且不使用额外空间,其概念为: 如果我们对 0 和二进制位做 XOR 运算,得到的仍然是这个二进制位 a XOR 0 = a 如果我们对相同的二进制位做 XOR 运算,返回的结果是 0 a XOR a = 0 XOR 满足交换律和结合律 代码: 借助哈希表: Java: 哈希映射频率(可用于字符串出现频率的计算) class Solution { public int singleNumber(int[] nums) { Map<Integer, Integer> map = new HashMap<>(); for (int num : nums) { Integer count = map.get(num); //get() 方法获取元素不存在时返回null count = count == null ? 1 : ++count; //count为null 时证明元素不存在,则频率改为1,否则count频率+1 map.put(num, count); //加入映射表 } for (Integer num : map.keySet()) if (map.get(num) == 1) return num; //返回频率为1的数 return 0; } } Python: 1、借助 try...except...,只适用于该题中重复元素重复出现次数为偶数次。 class Solution(object): def singleNumber(self, nums): hash_map = {} for i in nums: try: hash_map.pop(i) # 尝试移除该数 except: hash_map[i] = 1 # 移除失败证明字典内没有该值,则添加到字典 return hash_map.popitem()[0] #最后字典中只剩下一个键值对,返回其键值 2、字典映射频率(可用于字符串出现频率的计算) class Solution: def singleNumber(self, nums: List[int]) -> int: hash_map = {} for num in nums: hash_map.setdefault(num, 0) hash_map[num] += 1 # 每次出现频率加一 for k, v in hash_map.items(): #二次遍历返回频率为1的数 if v == 1: return k return 0 亦或运算(XOR): 其处理逻辑可以简单理解为: 输入: [2 , 3 , 2 , 4 , 3] , 初始化 result = 0 result = 0 XOR 2 = 2 result = 2 XOR 3 = [2 , 3] result = [2 , 3] XOR 2 = 3 result = 3 XOR 4 = [3 , 4] result = [3 , 4] XOR 3 = 4 返回 result = 4 异或运算是位操作中最基本运算之一,以上是为方便理解异或运算而简化抽象的逻辑,如果想进一步了解位操作可以参考Wiki百科。 高级程序设计语言异或运算表示符号一般是 ^。 Java: class Solution { public int singleNumber(int[] nums) { int result = 0; for (int num : nums) result = result ^ num; return result; } } Python: class Solution: def singleNumber(self, nums: List[int]) -> int: result = 0 for num in nums: result = result ^ num return result

优秀的个人博客,低调大师

js仿黑客帝国文字数字雨效果

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>黑客帝国文字下落</title> <style> html, body {margin:0; padding:0; background-color:#000;} </style> <script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script> </head> <body> <canvas id="matrix" height="943" width="1920"></canvas> <script type="text/javascript"> //文字 var txts = "0123456789!@#$%^&*()~_+℃○※"; //转为数组 txts = txts.split(""); var matrix=document.getElementById("matrix"); var context=matrix.getContext("2d"); matrix.height=window.innerHeight; matrix.width=window.innerWidth; var drop=[]; var font_size=16; var columns=matrix.width/font_size; for(var i=0;i<columns;i++) drop[i]=1; function drawMatrix(){ context.fillStyle="rgba(0, 0, 0, 0.09)"; context.fillRect(0,0,matrix.width,matrix.height); context.fillStyle="green"; context.font=font_size+"px"; for(var i=0;i<columns;i++){ //随机取要输出的文字 var text = txts[Math.floor(Math.random()*txts.length)]; //输出文字,注意坐标的计算 context.fillText(text,i*font_size,drop[i]*font_size);/*get 0 and 1*/ if(drop[i]*font_size>(matrix.height*2/3)&&Math.random()>0.95)/*reset*/ drop[i]=0; drop[i]++; } } setInterval(drawMatrix,33); </script> </body> </html>

优秀的个人博客,低调大师

除数字货币,区块链影响全球的八种方式

从银行、安全通信到医疗和拼车,区块链将对我们的未来产生巨大的影响。当然,要理解区块链如何改变世界,你首先需要了解它是如何运作的。 你曾经购买过被贴上公平贸易产品标签的咖啡或商品吗?你怎么能相信这些信息呢?当你在约会网站上遇到某人时,你会怎么想?你怎么知道他们真的是35岁的初创公司创始人 ? 如今的社会充满了不确定性和信任问题,而且有正当的理由。想要确定你的购买行为真的是在帮助埃塞俄比亚种植咖啡豆的农民,或者你的约会对象实际上确如他们所说的那样,你需要一个具备强大安全保障性的系统,储存记录,并拥有多位目击者,这样就没有欺诈了。 区块链:简化 这种类型的系统称为区块链。信息存储在许多个人电脑的系统中,因此没有中间商。它是去中心化的、分布式的,这样就没有人可以篡改或毁掉它。但是,任何人都可以使用并运行这个系统,因为信息通过加密术保护。 它本质上是

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册