您的位置:首页 > 游戏 > 游戏 > 网店设计流程图_微信公众号怎么创建账号_网站热度查询_株洲网站设计

网店设计流程图_微信公众号怎么创建账号_网站热度查询_株洲网站设计

2025/4/18 9:24:15 来源:https://blog.csdn.net/2302_80277784/article/details/146450937  浏览:    关键词:网店设计流程图_微信公众号怎么创建账号_网站热度查询_株洲网站设计
网店设计流程图_微信公众号怎么创建账号_网站热度查询_株洲网站设计

文章目录

      • 概念
      • 特点
      • 属性
      • 完整的清单
      • 显示
      • 添加到主屏幕
      • 算法
        • 描述
        • 方案一
        • 方案二

概念

Web App Manifest(应用程序清单) 是一个 JSON 格式的文件,用于提供 Web 应用的相关元数据(应用程序的名称、图标、颜色主题、屏幕方向等)。可以让网站安装到设备的主屏幕,不需要用户通过应用商店下载。

特点

沉浸式体验:通过定义详细的manifest,PWA可以在用户的设备上获得与原生应用相似的体验,包括添加到主屏、全屏运行、自定义启动画面等。
跨平台一致性:Web App Manifest标准确保了在不同平台和设备上的表现一致性,尽管某些特性可能因浏览器而异。
SEO和可发现性:manifest中的信息也对搜索引擎友好,有助于提高应用的可发现性和索引质量。
渐进式增强:即使在不完全支持PWA特性的浏览器中,manifest的存在也不会影响基础网页的功能,体现了渐进式增强的原则。

属性

nameshort_name:分别为应用程序的全名和短名,用于在启动屏、应用列表等位置显示。
description:简短描述你的应用程序,有助于搜索引擎优化和辅助技术。
start_url:用户首次打开PWA时加载的URL。
display:指定应用程序的显示模式,standalone意味着它看起来像一个独立的应用,没有浏览器UI。
background_color:应用程序加载时的背景颜色,影响加载过程中的视觉连续性。
theme_color:影响状态栏、地址栏的颜色(在某些平台上)。
icons:定义不同尺寸的应用图标,用于启动屏、应用列表等。确保包含至少一个192x192和一个512x512像素的图标,满足大多数设备和用途的需求。
orientation:可选属性,指定应用程序的首选屏幕方向,如portrait表示竖屏。

完整的清单

{"name": "My Web Application","short_name": "My App","icons": [{"src": "img/icon2.png","sizes": "192x192","type": "image/png"}],"screenshots": [{"src": "img/image.png","form_factor": "wide","type": "image/png","sizes": "2560x1516"},{"src": "img/image.png","type": "image/png","sizes": "2560x1516"}],"start_url": "index.html","display": "standalone","background_color": "#5ad74f","theme_color": "#fbc31f","description": "A simple web application","related_applications": [],"categories": ["tools", "productivity"]
}

显示

在浏览器Application选项中可以找到网络应用清单。我们定义的一些应用属性都可以看到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加到主屏幕

运行页面时,地址栏会显示在这里插入图片描述这个按钮,点击弹出提示安装应用
在这里插入图片描述
选择安装你就可以在桌面上得到一个自己定义的一个应用程序
在这里插入图片描述

算法

描述

给定一个数组,找到两个总和为特定值的索引。

例如给定数组 [1, 2, 3, -2, 5, 7],给定总和 7,则返回索引 [1, 4]。

若有多组符合情况则输出索引对中小索引最小的一组。

方案一

暴力枚举法

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = scanner.nextInt();}int target = scanner.nextInt();for (int i = 0; i < n - 1; i++) {for (int j = i + 1; j < n; j++) {if (nums[i] + nums[j] == target) {System.out.println(i + " " + j);return;}}}}
}
方案二

哈希数组

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n=scan.nextInt();int[]  arr=new int[n+1];int[]  hash=new int[205];//存放元素的位置for(int i=0;i<n;i++){arr[i]=scan.nextInt();hash[arr[i]+100]=i;//比如-20对应hash[80]}int k=scan.nextInt();for(int i=0;i<n;i++) {if(hash[k-arr[i]+100]!=0) {//相应的元素存在System.out.println(i+" "+hash[k-arr[i]+100]);return;}}scan.close();}
}

使用 for 循环依次读取 n 个整数,并将它们存储到 arr 数组中。

对于每个读取的整数 arr[i],将其加上 100 作为 hash 数组的索引,将 i(即该整数在 arr 数组中的位置)存储在 hash[arr[i] + 100] 中。这样做的目的是为了处理负数,因为数组的索引不能为负数,通过加上 100 可以将范围在 -100 到 100 之间的整数映射到 0 到 200 的索引范围。

使用 for 循环遍历 arr 数组中的每个元素。

对于每个元素 arr[i],计算 k - arr[i],这是与 arr[i] 相加等于 k 的另一个数。
将 k - arr[i] 加上 100 作为 hash 数组的索引,检查 hash[k - arr[i] + 100] 是否不为 0。如果不为 0,说明找到了满足条件的另一个数,并且 hash[k - arr[i] + 100] 存储了该数在 arr 数组中的位置。
输出这两个数在 arr 数组中的索引,并使用 return 语句结束程序。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com