首页 文章 精选 留言 我的

精选列表

搜索[Excel导题],共7114篇文章
优秀的个人博客,低调大师

《Java语言导学(原书第6版)》一

2.5 包 包是相关类和接口的命名空间。概念上,包和文件夹类似,可以将HTML文件、图像文件、脚本和程序分别存在一个文件内。因为Java程序会由很多个体类组成,所以按照包的逻辑形式组织相关类和接口意义重大。Java平台提供了庞大的类库(包的集合)用于开发应用程序。该类库通常称为应用程序接口(Application Programming Interface,API)。类库中的包主要包含编程中的常见任务。例如,对象String包含字符串的状态和行为,对象File可创建、删除、检查、比较和修改文件系统中的文件,对象Socket支持网络套接字的创建和使用,不同的图形用户界面(GUI)对象控制按钮、复选框以及其他与GUI相关的状态和行为。毫不夸张地说,API中有成千上万个类可供选择。因此,程序员可以只关注特定的应用而不是程序运行的基础架构。

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

LeetCode第66题:加一

题目 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。 示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。 代码 class Solution: def plusOne(self, digits: List[int]) -> List[int]: str_l = str(digits).replace('[', '').replace(']', '').replace(', ', '') int_str_l = str(int(str_l) + 1) list_l = [int(i) for i in int_str_l] return list_l

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

LeetCode第28题:实现strStr()

题目 实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", needle = "bba" 输出: -1 代码 class Solution(object): def strStr(self, haystack, needle): """ :type haystack: str :type needle: str :rtype: int """ if needle == "": return 0 if needle in haystack: return len(haystack.split(needle)[0]) else: return -1 本文链接:时光不写博客-实现strStr()

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

LeetCode第7题:整数反转

题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例1:输入: 123 输出: 321 示例2:输入: -123 输出: -321 示例3:输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 代码 class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ if x < 0: str_x = str(x)[1:][::-1] x = -1 * int(str_x) if -2147483648 < x: return x return 0 x = int(str(x)[::-1]) if x < 2147483647: return x return 0 参考链接:时光不写博客-Reverse Integer

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

LeetCode第9题:回文数

题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例1:输入: 121 输出: true 示例2:输入: -121 输出: false 解释: 从左向右读, 为 -121。 从右向左读, 为 121-。因此它不是一个回文数。 示例3:输入: 10 输出: false 解释: 从右向左读, 为 01。因此它不是一个回文数。 代码 class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool """ return str(x) == str(x)[::-1] 本文链接:时光不写博客-Palindrome Number

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

算法题丨4Sum

描述 Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target. Note: The solution set must not contain duplicate quadruplets. 示例 Given array S = [1, 0, -1, 0, -2, 2], and target = 0. A solution set is: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ] 算法分析 难度:中分析:给定整型数组和指定一个整型目标值,从整形数组中找出4个不同的元素,使得4个元素之和等于目标值,返回结果为所有满足上述条件的元素组合。思路:思路可以参考3Sum,主要难度是由原先的找3个元素之和,变成了找4个元素之和。这种情况下,其实有点像解魔方:玩五阶魔方就是从五阶降到四阶,然后再从四阶降到三阶,最后再按照玩三阶魔方的方法解决问题。 最终的解法,其实就是在3阶解法的基础上,在外层再套一层4阶的循环,并做一些基础的判断,复杂度也是在3阶n²基础上*n=n³,当然,这种算法也可推广到n阶。 代码示例(C#) public IList<IList<int>> FourSum(int[] nums, int target) { List<IList<int>> res = new List<IList<int>>(); if (nums.Length < 4) return res; //排序 Array.Sort(nums); //4阶判断 for (int i = 0; i < nums.Length - 3; i++) { //如果最近4个元素之和都大于目标值,因为数组是排序的,后续只可能更大,所以跳出循环 if (nums[i] + nums[i + 1] + nums[i + 2] + nums[i + 3] > target) break; //当前元素和最后3个元素之和小于目标值即本轮最大值都小于目标值,则本轮不满足条件,跳过本轮 if (nums[i] + nums[nums.Length - 1] + nums[nums.Length - 2] + nums[nums.Length - 3] < target) continue; //防止重复组合 if (i > 0 && nums[i] == nums[i - 1]) continue; //3阶判断 for (int j = i + 1; j < nums.Length - 2; j++) { //原理同4阶判断 if (nums[i] + nums[j] + nums[j + 1] + nums[j + 2] > target) break; if (nums[i] + nums[j] + nums[nums.Length - 1] + nums[nums.Length - 2] < target) continue; int lo = j + 1, hi = nums.Length - 1; while (lo < hi) { //已知元素 nums[i],nums[j],剩下2个元素做夹逼 int sum = nums[i] + nums[j] + nums[lo] + nums[hi]; if (sum == target) { res.Add(new List<int> { nums[i], nums[j], nums[lo], nums[hi] }); while (lo < hi && nums[lo] == nums[lo + 1]) lo++; while (lo < hi && nums[hi] == nums[hi - 1]) hi--; lo++; hi--; } //两边夹逼 else if (sum < target) lo++; else hi--; } } } return res; } 复杂度 时间复杂度:O (n³). 空间复杂度:O (1). 附录 系列目录索引 代码实现(C#版) 相关算法 Two Sum 3Sum 3Sum Closest 文章作者:原子蛋 文章出处:https://www.cnblogs.com/lizzie-xhu/ 个人网站:https://www.lancel0t.cn/ 个人博客:https://blog.lancel0t.cn/ 微信公众号:原子蛋Live+ 扫一扫左侧的二维码(或者长按识别二维码),关注本人微信公共号,获取更多资源。 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

算法题丨3Sum

描述 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution set must not contain duplicate triplets. 示例 Given array S = [-1, 0, 1, 2, -1, -4], A solution set is: [ [-1, 0, 1], [-1, -1, 2] ] 算法分析 难度:中分析:要求给定的数组,找出满足条件的3个元素组合,使得3个元素之和等于零。注意,元素不能重复(值可以相同)。思路:首先,我们需要对数组进行排序,比如数组排序后变为[-4, -1, -1, 0, 1, 2],我们判断第一个元素-4,判断它之后是否有2个元素的和等于4,如果有的话满足条件。因为数组已经排序,只要向当前元素之后查找即可,不用往前查找; 接下来,我们开始遍历排序后的数组,假设当前元素是x,判断本次遍历有解的条件可以转化为找到当前元素之后2个元素和,应该等于0-x,使用夹逼查找方法,检查是否有解,如果有,增加到返回队列,没有的话,进入下一次的遍历,直至找到所有满足条件组合。 代码示例(C#) public IList<IList<int>> ThreeSum(int[] nums) { //排序 Array.Sort(nums); var res = new List<IList<int>>(); //当前元素向后匹配2个元素,所以最后2个元素不用被遍历 for (int i = 0; i < nums.Length - 2; i++) { if (i == 0 || (i > 0 && nums[i] != nums[i - 1])) { int lo = i + 1, hi = nums.Length - 1, sum = 0 - nums[i]; while (lo < hi) { //找到满足条件元素,添加到返回结果队列 if (nums[lo] + nums[hi] == sum) { res.Add(new List<int> { nums[i], nums[lo], nums[hi] }); //防止重复元素 while (lo < hi && nums[lo] == nums[lo + 1]) lo++; while (lo < hi && nums[hi] == nums[hi - 1]) hi--; //夹逼查找 lo++; hi--; } else if (nums[lo] + nums[hi] < sum) lo++; else hi--; } } } return res; } 复杂度 时间复杂度:O (n²). 空间复杂度:O (1). 附录 系列目录索引 代码实现(C#版) 相关算法 Two Sum 3Sum Closest 4Sum 文章作者:原子蛋 文章出处:https://www.cnblogs.com/lizzie-xhu/ 个人网站:https://www.lancel0t.cn/ 个人博客:https://blog.lancel0t.cn/ 微信公众号:原子蛋Live+ 扫一扫左侧的二维码(或者长按识别二维码),关注本人微信公共号,获取更多资源。 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

算法题丨Longest Consecutive Sequence

描述 Given an unsorted array of integers, find the length of the longest consecutive elements sequence. Your algorithm should run in O(n) complexity. 示例 Given [100, 4, 200, 1, 3, 2], The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4. 算法分析 难度:高分析:给定未排序的整型数组,找到数值连续的元素,并返回连续元素的最大长度。思路:首先考虑一般的思路,可以将数组先排序,然后遍历数组元素,判断是否连续,返回最大连续元素的个数,这样的话,循环的复杂度为O (n),排序的复杂度为O (nlgn),算法的整体复杂度为O (nlgn),并不满足题目要求的复杂度。所以,该算法题目的难点是如何采用O (n)的算法。 再考虑使用哈希表来存储元素,因为哈希表提供了O (1)复杂度的Contains方法,以便我们快速的访问元素: 1. 首先,我们将数组元素构造成哈希表,并定义变量longestStreak=0,用来记录最大连续元素的个数; 2. 遍历哈希表,判断当前元素num-1,是否存在在哈希表中: a). 如果不存在,不用处理,继续遍历哈希表下一个元素; b). 如果存在,说明有比当前元素小1的值,则定义currentNum=当前元素,定义currentStreak=1,表示currentNum作为开始比较的元素,刚开始的连续元素个数为1; c). 开始后续比较,如果哈希表存在currentNum+1的元素,表示当前元素currentNum有后续相邻的元素,连续的元素为之前最大连续元素次数+1,开始下个一个元素比较,即currentNum+1; d). 后续比较结束后,将本次循环获得的currentStreak作为本次循环记录的最大连续元素个数,记录本次最大连续次数currentStreak和之前最大连续次数longestStreak的最大值到longestStreak,并进入下一个循环遍历; 3. 循环遍历结束后,返回最大连续次数longestStreak; 代码示例(C#) public int LongestConsecutive(int[] nums) { var numSet = new HashSet<int>(nums); //记录最大连续元素个数 int longestStreak = 0; foreach (int num in numSet) { //存在跟当前元素连续的值 if (!numSet.Contains(num - 1)) { int currentNum = num; int currentStreak = 1; //每匹配到后面连续的元素,当前最大连续元素个数+1 while (numSet.Contains(currentNum + 1)) { currentNum += 1; currentStreak += 1; } //最大连续元素个数取当前最大连续元素和记录的最大连续元素个数两者最大者 longestStreak = Math.Max(longestStreak, currentStreak); } } return longestStreak; } 复杂度 时间复杂度:O (n). 空间复杂度:O (n). 附录 系列目录索引 代码实现(C#版) 文章作者:原子蛋 文章出处:https://www.cnblogs.com/lizzie-xhu/ 个人网站:https://www.lancel0t.cn/ 个人博客:https://blog.lancel0t.cn/ 微信公众号:原子蛋Live+ 扫一扫左侧的二维码(或者长按识别二维码),关注本人微信公共号,获取更多资源。 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

资源下载

更多资源
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应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册