当前位置: 首页 > wzjs >正文

贵阳网站建设方案咨询个人网站制作教程

贵阳网站建设方案咨询,个人网站制作教程,成品网站前台源码,网站云推广字符串求回文字串数目 public class CountPalindromicSubstrings {/*** 此方法用于计算字符串中回文子串的数量* param s 输入的字符串* return 回文子串的数量*/public static int countSubstrings(String s) {// 若输入字符串为空或长度为 0,直接返回 0if (s nu…

字符串求回文字串数目

public class CountPalindromicSubstrings {/*** 此方法用于计算字符串中回文子串的数量* @param s 输入的字符串* @return 回文子串的数量*/public static int countSubstrings(String s) {// 若输入字符串为空或长度为 0,直接返回 0if (s == null || s.length() == 0) {return 0;}// 用于记录回文子串的数量int count = 0;// 获取字符串的长度int n = s.length();// 遍历字符串中的每个字符for (int i = 0; i < n; i++) {// 以单个字符为中心进行扩展,统计以该字符为中心的回文子串数量count += expandAroundCenter(s, i, i);// 以两个相邻字符为中心进行扩展,统计以这两个相邻字符为中心的回文子串数量count += expandAroundCenter(s, i, i + 1);}return count;}/*** 以给定的左右索引为中心向两边扩展,计算以该中心的回文子串数量* @param s 输入的字符串* @param left 左索引* @param right 右索引* @return 以该中心的回文子串数量*/private static int expandAroundCenter(String s, int left, int right) {// 用于记录以该中心的回文子串数量int count = 0;// 当左右索引在字符串范围内,并且对应字符相等时,继续扩展while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {// 每找到一个回文子串,数量加 1count++;// 左索引向左移动一位left--;// 右索引向右移动一位right++;}return count;}public static void main(String[] args) {// 定义一个示例字符串String s = "abc";// 调用 countSubstrings 方法计算回文子串的数量,并输出结果System.out.println("回文子串的数目是: " + countSubstrings(s));}
}    

环形链表总集

// 定义链表节点类,每个节点包含一个整数值和一个指向下一个节点的引用
class ListNode {int val;ListNode next;// 构造函数,用于初始化节点的值ListNode(int x) {val = x;next = null;}
}public class CircularLinkedListAlgorithms {/*** 判断链表是否有环* @param head 链表的头节点* @return 如果链表有环返回 true,否则返回 false*/public static boolean hasCycle(ListNode head) {// 若链表为空或者只有一个节点,不可能存在环,直接返回 falseif (head == null || head.next == null) {return false;}// 慢指针,每次移动一步ListNode slow = head;// 快指针,每次移动两步ListNode fast = head;// 当快指针和其下一个节点都不为空时,继续循环while (fast != null && fast.next != null) {// 慢指针移动一步slow = slow.next;// 快指针移动两步fast = fast.next.next;// 如果慢指针和快指针相遇,说明链表存在环if (slow == fast) {return true;}}// 快指针到达链表末尾,说明链表不存在环return false;}/*** 找到环形链表的入环点* @param head 链表的头节点* @return 入环点的节点,如果链表无环则返回 null*/public static ListNode detectCycle(ListNode head) {// 若链表为空或者只有一个节点,不可能存在环,直接返回 nullif (head == null || head.next == null) {return null;}// 慢指针,每次移动一步ListNode slow = head;// 快指针,每次移动两步ListNode fast = head;// 标记链表是否有环boolean hasCycle = false;// 当快指针和其下一个节点都不为空时,继续循环while (fast != null && fast.next != null) {// 慢指针移动一步slow = slow.next;// 快指针移动两步fast = fast.next.next;// 如果慢指针和快指针相遇,说明链表存在环if (slow == fast) {hasCycle = true;break;}}// 如果链表无环,返回 nullif (!hasCycle) {return null;}// 慢指针重新指向头节点slow = head;// 慢指针和快指针同时移动一步,直到它们相遇,相遇点即为入环点while (slow != fast) {slow = slow.next;fast = fast.next;}return slow;}/*** 计算环形链表的环长度* @param head 链表的头节点* @return 环的长度,如果链表无环则返回 0*/public static int cycleLength(ListNode head) {// 若链表为空或者只有一个节点,不可能存在环,直接返回 0if (head == null || head.next == null) {return 0;}// 慢指针,每次移动一步ListNode slow = head;// 快指针,每次移动两步ListNode fast = head;// 标记链表是否有环boolean hasCycle = false;// 当快指针和其下一个节点都不为空时,继续循环while (fast != null && fast.next != null) {// 慢指针移动一步slow = slow.next;// 快指针移动两步fast = fast.next.next;// 如果慢指针和快指针相遇,说明链表存在环if (slow == fast) {hasCycle = true;break;}}// 如果链表无环,返回 0if (!hasCycle) {return 0;}// 初始化环的长度为 1int length = 1;// 快指针移动一步fast = fast.next;// 快指针继续移动,直到再次和慢指针相遇,记录移动的步数while (slow != fast) {fast = fast.next;length++;}return length;}public static void main(String[] args) {// 构建一个有环的链表示例ListNode node1 = new ListNode(1);ListNode node2 = new ListNode(2);ListNode node3 = new ListNode(3);ListNode node4 = new ListNode(4);node1.next = node2;node2.next = node3;node3.next = node4;node4.next = node2; // 形成环// 调用 hasCycle 方法判断链表是否有环并输出结果System.out.println("链表是否有环: " + hasCycle(node1));// 调用 detectCycle 方法找到入环点ListNode entryPoint = detectCycle(node1);if (entryPoint != null) {// 若有入环点,输出入环点的值System.out.println("入环点的值: " + entryPoint.val);} else {// 若没有入环点,输出提示信息System.out.println("没有入环点");}// 调用 cycleLength 方法计算环的长度并输出结果System.out.println("环的长度: " + cycleLength(node1));}
}    

有序数组去重

public class RemoveDuplicatesSortedArray {/*** 此方法用于移除有序数组中的重复元素,使每个元素只出现一次。* 并返回移除重复元素后数组的新长度。* 原数组会被修改,新长度之前的元素为去重后的元素。** @param nums 输入的有序整数数组* @return 去重后数组的新长度*/public static int removeDuplicates(int[] nums) {// 如果数组为空,直接返回 0if (nums == null || nums.length == 0) {return 0;}// 慢指针,指向去重后数组的最后一个位置int slow = 0;// 快指针,用于遍历数组for (int fast = 1; fast < nums.length; fast++) {// 如果快指针指向的元素和慢指针指向的元素不相等if (nums[fast] != nums[slow]) {// 慢指针向后移动一位slow++;// 将快指针指向的元素赋值给慢指针当前位置nums[slow] = nums[fast];}}// 慢指针的位置加 1 就是去重后数组的长度return slow + 1;}public static void main(String[] args) {// 定义一个有序数组int[] nums = {1, 1, 2, 2, 3, 4, 4, 4, 5};// 调用 removeDuplicates 方法进行去重int newLength = removeDuplicates(nums);System.out.println("去重后数组的新长度: " + newLength);System.out.print("去重后的数组元素: ");for (int i = 0; i < newLength; i++) {System.out.print(nums[i] + " ");}}
}    

数组合并区间 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;public class MergeIntervals {/*** 合并重叠的区间* @param intervals 输入的区间数组* @return 合并后不重叠的区间数组*/public static int[][] merge(int[][] intervals) {// 如果输入数组为空或者长度为 0,直接返回空数组if (intervals == null || intervals.length == 0) {return new int[0][0];}// 按照区间的起始位置进行排序Arrays.sort(intervals, Comparator.comparingInt(a -> a[0]));// 用于存储合并后的区间List<int[]> merged = new ArrayList<>();// 取第一个区间作为初始的合并区间int[] current = intervals[0];// 遍历剩余的区间for (int i = 1; i < intervals.length; i++) {int[] interval = intervals[i];// 如果当前区间的结束位置大于等于下一个区间的起始位置,说明有重叠if (current[1] >= interval[0]) {// 更新当前区间的结束位置为两个区间结束位置的最大值current[1] = Math.max(current[1], interval[1]);} else {// 没有重叠,将当前区间加入到合并列表中merged.add(current);// 更新当前区间为下一个区间current = interval;}}// 将最后一个合并的区间加入到列表中merged.add(current);// 将列表转换为二维数组并返回return merged.toArray(new int[merged.size()][]);}public static void main(String[] args) {int[][] intervals = {{1, 3}, {2, 6}, {8, 10}, {15, 18}};int[][] mergedIntervals = merge(intervals);// 输出合并后的区间for (int[] interval : mergedIntervals) {System.out.println(Arrays.toString(interval));}}
}    

http://www.dtcms.com/wzjs/394052.html

相关文章:

  • liferay 做网站win优化大师官网
  • 网站图片一般多大以网红引流促业态提升
  • 社会人文因素对网站建设的影响福州整站优化
  • 如何增加网站外链东莞推广公司
  • 网站建设可行性及需求分析百度seo如何快速排名
  • 西安做网站的公司有哪些怎么让某个关键词排名上去
  • 沈阳模板网站制作电脑培训零基础培训班
  • dreamweaver的主要功能seo关键词优化指南
  • 千图主站与普通网站的区别澳门seo关键词排名
  • 价格低油耗低的车大连百度网站排名优化
  • 互联网网站开发发展福建seo顾问
  • 个人网站做淘宝客教程温州百度推广公司电话
  • 做网站开发学什么内容私人网站服务器
  • 网站建设是怎么赚钱qq推广软件
  • ss和wordpress优化疫情二十条措施
  • 网站建设制作视频教程域名
  • 京东商城企业网站建设分析搜索引擎 磁力吧
  • 个人网站设计论文道客巴巴夫唯seo怎么样
  • 零基础网站建设入门到精通视频教程网络营销方式有哪几种
  • javaweb网站开发的步骤360线上推广
  • 动画制作软件下载安装整站优化排名
  • c 做网站流程制作网站的网址
  • 织梦做网站利于优化百度云盘搜索引擎入口
  • 做免费外贸网站网络推广竞价外包
  • 餐饮公司最好的网站建设电商网站建设 网站定制开发
  • 分享惠网站怎么做江西网络推广seo
  • 网站建设的项目方案模板谷歌官方网站登录入口
  • 网站建设策划书事物选题商业网站
  • 做网站自己装服务器站外推广渠道
  • 人是用什么做的视频网站免费制作详情页的网站