IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 第六次课For蓝桥杯 -> 正文阅读

[数据结构与算法]第六次课For蓝桥杯

1. 二分查找

package test;

import java.util.Scanner;

public class DividSearch 
{
	//[begin,end)
	public static int f(int a[],int begin,int end,int x)
	{
		if(end-begin==1)
		{
			if(a[begin]>x) return begin;
			return end;
		}
		int mid=(begin+end)/2;
		if(x>=a[mid])//比中间的大,说明是右边
		{
			return f(a,mid,end,x);
		}else {
			return f(a,begin,mid,x);
		}
		
	}
	public static void main(String[] args)
	{
		int a[]= {1,4,8,16,17,22,23,663,1000};
		Scanner cin=new Scanner(System.in);
		int n=cin.nextInt();
		if(a[a.length-1]<n)
		{
			System.out.println(-1);
		}else
		System.out.println(f(a,0,a.length,n));

	}

}

2. 最长公共子序列

for (int i = 1; i <= strlen(b); i++)
		for (int j = 1; j <= strlen(p); j++)
		{
			if (b[i - 1] == p[j - 1])
				dp[i][j] = dp[i - 1][j - 1] + 1;
			else
				dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
		}

3. 最大字段和(连续的段)

package test;

import java.util.Scanner;

public class MaxString 
{
	public static void main(String[] args) {
		Scanner cin=new Scanner(System.in);
		int n=cin.nextInt();
		int m=0;
		int mid=-1,maxx=-10000;
		for(int i=0;i<n;i++)
		{
			m=cin.nextInt();
			if(mid>0)
			{
				mid+=m;
			}else {
				mid=m;
			}
			if(maxx<mid)
				maxx=mid;
				
		}
		System.out.println(maxx);
	}
	
}

4. 最长不下降子序列

package test;

public class MaxNoLow {

	public static void main(String[] args)
	{
		int a[]= {1,5,3,14,13,16,7,18};
		int len=0;
		int maxx=0;
		int b[]=new int[a.length];
		for(int i=1;i<a.length;i++)
		{
			len=1;
			for(int j=0;j<i;j++)
			{
				if(a[i]>a[j])
				{
					len=Integer.max(len,b[j]);
				}
			}
			
			b[i]=len+1;
			maxx=Integer.max(maxx,b[i]);
		}
		System.out.println(maxx);
	}

}

5.【大数乘法】-分治

package test;

import java.math.BigInteger;

public class MyBigInteger 
{

	public static String zero(int n)
	{
		String s="";
		for(int i=1;i<= n;i++)
		{
			s+="0";
		}
		return s;
	}
	public static String add(String a,String b)
	{
		if(a.length()<=8&&b.length()<=8)
		{
			return Integer.parseInt(a)+Integer.parseInt(b)+"";
		}
		//加法也进行分段来计算
		
		String ah="0";//高位记为0
		String al=a;
		if(a.length()>8)
		{
			ah=a.substring(0,a.length()-8);
			al=a.substring(a.length()-8);
		}
				
		String bh="0";
		String bl=b;
		if(b.length()>8)
		{
			bh=b.substring(0,b.length()-8);
			bl=b.substring(b.length()-8);
		}
		String t=add(al,bl);
		while(t.length()<8) t="0"+t;
		//说明有进位 进位一定是1
		//可以想象999+999 进位是1
		if(t.length()>8)
		{
			return add(add(ah,bh),"1")+t.substring(1);	
		}
		return add(ah,bh)+t;
		
	}
	public static String multip(String a,String b)
	{
		if(a.length()<=4&&b.length()<=4)
		{
			return ""+Integer.parseInt(a)*Integer.parseInt(b);
		}
		if(a.length()>4)
		{
			int k=a.length()/2;
			String a1=a.substring(0,k);
			String a2=a.substring(k);
			//把乘数分成两部分最后添零拼接在一起即可
			return add(multip(b,a1)+zero(a2.length()),multip(b,a2));					
		}
		return multip(b,a);
	}
	public static void main(String[] args) 
	{
		System.out.println(multip("1234567890987654321666","1234567890123456789555"));
		BigInteger b1=new BigInteger("1234567890987654321666");
		System.out.println(b1.multiply(new BigInteger("1234567890123456789555")));
	}

}

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:17:10  更:2022-03-21 21:18:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 2:11:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码