<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[okclouderx的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/caoshen2014</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; caoshen2014]]></copyright><item><title><![CDATA[【Easy-Vibe】【task3】动手做出原型]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/158364785</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/158364785</guid><author>caoshen2014</author><pubDate>Wed, 25 Feb 2026 00:50:52 +0800</pubDate><description><![CDATA[摘要：本文探讨了如何从简单的AI玩具项目转向解决真实业务问题的产品开发。通过电商运营案例，展示了如何将模糊需求转化为具体功能：1)通过业务访谈锁定核心痛点（如批量生成商品图文）；2)使用AI IDE快速生成原型，包括商品信息录入、批量生成主图文案等功能；3)逐步扩展为多页面应用。文章强调产品思维的关键在于理解用户真实需求而非堆砌功能，并提供了从单页面验证到完整工作台的开发路径，最终呈现包含商品管理和模板库的抖音电商工作台原型。]]></description><category></category></item><item><title><![CDATA[【Easy-Vibe】【task5】完整项目实战]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/158357104</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/158357104</guid><author>caoshen2014</author><pubDate>Tue, 24 Feb 2026 23:59:08 +0800</pubDate><description><![CDATA[本文介绍了如何完善AI原型项目的核心链路，使其更接近真实产品。重点包括：1）增加加载状态和错误处理，提升用户体验；2）实现对话历史持久化存储；3）利用AI生成逼真的模拟数据，包括商品信息和营销文案；4）建议采用用户测试和快速迭代方法优化产品。文章提供了具体的提示词示例和数据结构建议，帮助开发者构建具备完整交互流程的动态应用，而非仅实现理想路径的静态原型。]]></description><category></category></item><item><title><![CDATA[【Easy-Vibe】【task4】给原型加上 AI 能力]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/158239133</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/158239133</guid><author>caoshen2014</author><pubDate>Tue, 24 Feb 2026 23:34:32 +0800</pubDate><description><![CDATA[本文介绍了如何为原型产品集成AI能力，主要包括API基础概念和两个API接入实践。首先解释了API的核心要素：API Key、Endpoint、请求响应机制及安全注意事项。然后详细演示了如何接入DeepSeek文本生成API，包括请求格式、参数配置和示例代码。接着展示了硅基流动Qwen3 VL的图像转文字API实现方法，提供Python代码示例。最后布置了实践作业，要求完成商品文案自动生成和图片转电商卖点文本两个功能的集成，并附有预期效果截图。全文150字，涵盖了API基础知识和具体实现方案。]]></description><category></category></item><item><title><![CDATA[【Easy-Vibe】【task2】认识 AI IDE 工具]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/158013487</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/158013487</guid><author>caoshen2014</author><pubDate>Thu, 12 Feb 2026 23:57:52 +0800</pubDate><description><![CDATA[摘要：AI IDE工具的革命性转变 AI IDE工具正在改变传统编程方式，核心思维是&quot;遇到问题先问AI&quot;。与普通IDE不同，AI IDE具备智能代码生成、代码理解与问答、自动重构优化等能力，可以替代部分初级开发工作。通过贪吃蛇游戏案例展示了AI IDE如何根据简单提示自动生成完整项目，并能持续优化界面效果。有效使用AI IDE的关键在于：清晰表达需求（说明用途、内容结构、技术水平和预期结果）、采用渐进式开发策略（从最小原型开始逐步完善）、善用可视化辅助（截图和错误信息），以及掌握问题排查]]></description><category></category></item><item><title><![CDATA[【Easy-Vibe】【task1】AI 时代，会说话就会编程]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/157946842</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/157946842</guid><author>caoshen2014</author><pubDate>Wed, 11 Feb 2026 00:26:01 +0800</pubDate><description><![CDATA[摘要： 文章探讨了AI时代的&quot;氛围编程&quot;(Vibe Coding)，即通过自然语言对话而非直接编码完成开发任务。重点介绍了有效提问的技巧：提供完整上下文、约束输出格式，并展示了贪吃蛇游戏和AI艺术画廊两个实例开发过程。在贪吃蛇案例中，通过迭代反馈解决变量声明问题；艺术画廊项目则处理了模块导出和JSON解析错误，最终实现图片生成功能。文章强调&quot;提问能力&quot;已成为开发者核心技能，合理利用AI能显著提升开发效率。]]></description><category></category></item><item><title><![CDATA[[leetcode][1641]统计字典序元音字符串的数目]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/129844569</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/129844569</guid><author>caoshen2014</author><pubDate>Wed, 29 Mar 2023 20:20:56 +0800</pubDate><description><![CDATA[相当于 0 ]]></description><category></category></item><item><title><![CDATA[[leetcode][2319]判断矩阵是否是一个 X 矩阵]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128815625</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128815625</guid><author>caoshen2014</author><pubDate>Tue, 31 Jan 2023 13:11:35 +0800</pubDate><description><![CDATA[时间复杂度：O(n^2)空间复杂度：O(1)]]></description><category></category></item><item><title><![CDATA[[leetcode][2315]统计星号]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128795549</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128795549</guid><author>caoshen2014</author><pubDate>Sun, 29 Jan 2023 23:20:20 +0800</pubDate><description><![CDATA[使用 valid 标记是否处于竖线对。如果不在竖线对，字符是 *，答案加一。时间复杂度：O(n)，一次遍历。空间复杂度：O(1)，常数空间。]]></description><category></category></item><item><title><![CDATA[[leetcode][1664]生成平衡数组的方案数]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128783297</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128783297</guid><author>caoshen2014</author><pubDate>Sat, 28 Jan 2023 23:30:13 +0800</pubDate><description><![CDATA[使用 4 个 int 分别保存被删除位置左边和右边的奇数位和、偶数位和。时间复杂度：O(n)，两次遍历。空间复杂度：O(1)，常数空间。]]></description><category></category></item><item><title><![CDATA[[leetcode][2293]极大极小游戏]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128698802</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128698802</guid><author>caoshen2014</author><pubDate>Sun, 15 Jan 2023 22:41:12 +0800</pubDate><description><![CDATA[空间复杂度：O(n)，每个新数组的长度是 n / 2 + n / 4 + …空间复杂度：O(n)，每个新数组的长度是 n / 2 + n / 4 + …时间复杂度：O(n)，每一轮需要 n / 2 + n / 4 + …时间复杂度：O(n)，每一轮需要 n / 2 + n / 4 + …时间复杂度：O(n)，每一轮需要 n / 2 + n / 4 + …空间复杂度：O(1)，不需要额外空间。]]></description><category></category></item><item><title><![CDATA[[acwing][785]快速排序]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128607591</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128607591</guid><author>caoshen2014</author><pubDate>Sun, 08 Jan 2023 23:56:07 +0800</pubDate><description><![CDATA[找到中间位置的值 x，将所有 = x 的数字排到它后面。然后处理 [left, pos] 和 [pos, right]两个区间。时间复杂度：O(nlogn)，找到每个元素的位置要 n 时间，递归深度 logn，平均 nlogn。空间复杂度：O(logn)，递归深度 logn。如果 left >= right，递归结束。]]></description><category></category></item><item><title><![CDATA[[leetcode][2185]统计包含给定前缀的字符串]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128607368</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128607368</guid><author>caoshen2014</author><pubDate>Sun, 08 Jan 2023 23:24:33 +0800</pubDate><description><![CDATA[遍历每个字符串，判断是否以 pref 为前缀。使用 startsWith 判断。时间复杂度：O(mn)，m 是 pref 的长度，n 是 words 的长度。空间复杂度：O(1)，常数空间。]]></description><category></category></item><item><title><![CDATA[[leetcode][1802]有界数组中指定下标处的最大值]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128556378</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128556378</guid><author>caoshen2014</author><pubDate>Wed, 04 Jan 2023 23:58:37 +0800</pubDate><description><![CDATA[查找最大值用二分查找，范围的最小值为1，最大值为 maxSum。查找条件为区间和不超过 maxSum，相邻元素按照减 1 递减，直到为 1。查找左右两个区间和，使用 cal 方法，big - 1为等差数列的最后一个，按照 length 得到等差数列的第一个，或者存在多余的 1。分两种情况求和，(s1 + sn) * n / 2 + 额外存在的 1。时间复杂度：O(log(maxSum))，二分查找时间复杂度。空间复杂度：O(1)，常数空间。]]></description><category></category></item><item><title><![CDATA[[leetcode][2042]检查句子中的数字是否递增]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128541213</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128541213</guid><author>caoshen2014</author><pubDate>Tue, 03 Jan 2023 23:55:39 +0800</pubDate><description><![CDATA[找到字符串中的每个数字，然后和前一个数字比较，如果不是严格递增就提前返回 false。否则返回 true。注意这题不要使用 split 方法，因为 java 的 split 耗时多。空间复杂度：O(1)，需要 2 个整数变量。时间复杂度：O(n)，遍历 n 个元素。]]></description><category></category></item><item><title><![CDATA[[leetcode][1801]积压订单中的订单总数]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128526147</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128526147</guid><author>caoshen2014</author><pubDate>Mon, 02 Jan 2023 22:33:36 +0800</pubDate><description><![CDATA[需要注意比较当前订单和队列头部的数量，选择两者较小的值，并且把剩余的数量分别放回买卖的两个队列。时间复杂度：O(nlogn)，优先级队列，遍历n个元素，每个元素处理时间为logn。积压订单用优先队列表示，因为需要删除买的价格贵和卖的价格低的订单，因此用优先队列。采购订单按照买入的价格降序，优先删除贵的；销售订单按照升序，优先删除价格低的。空间复杂度：O(n)，队列的大小为元素个数。]]></description><category></category></item><item><title><![CDATA[[leetcode][2351]第一个出现两次的字母]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128517286</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128517286</guid><author>caoshen2014</author><pubDate>Sun, 01 Jan 2023 23:57:48 +0800</pubDate><description><![CDATA[用 int 的 32 个 bit 记录每个字母是否出现过。空间复杂度：O(1)，一个 int 表示。用 int[] 记录每个字母出现的次数。用 set 记录每个字母出现的次数。空间复杂度：O(26)，字母个数。空间复杂度：O(26)，字母个数。时间复杂度：O(n)，遍历一次。时间复杂度：O(n)，遍历一次。时间复杂度：O(n)，遍历一次。]]></description><category></category></item><item><title><![CDATA[[leetcode][2037]使每位学生都有座位的最少移动次数]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/128509492</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/128509492</guid><author>caoshen2014</author><pubDate>Sat, 31 Dec 2022 22:58:21 +0800</pubDate><description><![CDATA[将位置和学生分别排序，然后对差的绝对值求和。交换位置不会得到更优的答案。可以交换后分情况讨论得出结论。综合所有情况，ans1 ]]></description><category></category></item><item><title><![CDATA[Kotlin的协程：flow]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/127412493</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/127412493</guid><author>caoshen2014</author><pubDate>Wed, 19 Oct 2022 17:34:35 +0800</pubDate><description><![CDATA[之前介绍的启动协程方法，比如 launch、async 都是协程的单次启动。如果有复杂场景，比如发送多个数据，就需要使用 flow 数据流。在 flow 中，数据如水流一样经过上游发送，中间站处理，下游接收。flow 是 kotlin 提供的解决复杂异步场景的方案。flow 由创建、中间操作符、终止操作符三个部分组成。flow 的生命周期可以分为 onStart 和 onComplete，与它们在 flow 的位置无关。flow 的异常处理使用 catch。catch 与位置相关。]]></description><category></category></item><item><title><![CDATA[Android Jetpack Compose介绍]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/125666520</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/125666520</guid><author>caoshen2014</author><pubDate>Fri, 08 Jul 2022 00:16:16 +0800</pubDate><description><![CDATA[Jetpack Compose 是用于构建原生 Android 界面的新工具包。它使用更少的代码、强大的工具和直观的 Kotlin API，可以帮助您简化并加快 Android 界面开发。2019年5月，Google在I/O大会上公布Compose
2020年9月，发布第一个Alpha版本
2021年7月，发布第一个稳定版本参数指定默认值。
函数参数很多时，可以分为必选参数和可选参数。命名参数可以不按照顺序传参。举例：
文本控件只需要传入文字是什么。
Text API定义
2.2 高阶函数
参数是函数的函数]]></description><category></category></item><item><title><![CDATA[Kotlin的协程：上下文]]></title><link>https://blog.youkuaiyun.com/caoshen2014/article/details/125546585</link><guid>https://blog.youkuaiyun.com/caoshen2014/article/details/125546585</guid><author>caoshen2014</author><pubDate>Thu, 30 Jun 2022 19:09:13 +0800</pubDate><description><![CDATA[Kotlin 的协程上下文叫做 CoroutineContext，通常用来切换线程池。launch 的第一个参数 context 是 CoroutineContext，默认值是 EmptyCoroutineContext。如果需要指定 launch 工作的线程池，就需要指定 CoroutineContext 参数。
withContext
withContext 用来切换线程执行代码。它的第一个参数是 CoroutineContext，指定线程池。
在 getUserInfoIo 中指定 withConte]]></description><category></category></item></channel></rss>