每日一题(珠玑妙算,两数之和)

面试题 16.15. 珠玑妙算 - 力扣(LeetCode)


int* masterMind(char* solution, char* guess, int* returnSize)
//定义一个函数masterMind,它接受三个参数:solution(正确答案),guess(玩家的猜测)和returnSize(用于返回结果数组的大小的指针){
    int i=0,j=0;
    int realguess=0,virtualgess=0;
    do{
        if(solution[i]==guess[i]) realguess++,solution[i]='0',guess[i]='1';
        i++;
    }while(i<4);//do-while循环,用于检查solution和guess中的每一个字符是否相同。如果相同,则realguess增加1,并将这两个字符分别设置为'0'和'1'以标记它们已经被匹配过。
    i=0;//重置i为0,为下一个循环做准备
    do{//开始另一个do-while循环,用于检查guess中的字符是否在solution中出现,但不在相同的位置
        do{//内部do-while循环开始,用于查找guess[i]在solution中的位置
            if(guess[i]==solution[j]){
                virtualgess++;
                solution[j] = '0';
                break;
            }//如果guess中的字符在solution中的某个位置找到,则virtualgess增加1,并将该位置的solution字符设置为'0'以标记它已经被匹配过,然后跳出内部循环
            j++;//如果guess[i]不在solution[j]的位置,增加j的值以检查下一个位置
        }while(j<4);
        j=0;
        i++;
    }while(i<4);
    
        j=0;
    int *ret;
    ret = malloc(sizeof(int)*2);
    ret[0] = realguess;
    ret[1] = virtualgess;
    *returnSize = 2;
    return ret;
}

两数之和_牛客题霸_牛客网 (nowcoder.com)

#include <stdio.h>  
  
// 函数用于找到两个数,使它们的和等于目标值target  
// numbers是整型数组,numbersSize是数组的大小,target是目标值  
// 函数返回包含两个数下标的数组,下标从1开始计数  
// 如果找不到满足条件的两个数,函数返回NULL  
int* two_sum_without_hash(int* numbers, int numbersSize, int target, int* returnSize) {  
    if (numbers == NULL || numbersSize < 2 || returnSize == NULL) {  
        *returnSize = 0;  
        return NULL;  
    }  
  
    for (int i = 0; i < numbersSize; i++) {  
        for (int j = i + 1; j < numbersSize; j++) 
//这两行开始了一个双重循环,用于遍历数组中的每对元素。外层循环变量i从0开始,内层循环变量j从i + 1开始,这样可以确保我们不会重复检查相同的数对{  
            if (numbers[i] + numbers[j] == target) {  
                // 找到满足条件的两个数,返回它们的下标  
                int* result = (int*)malloc(2 * sizeof(int)); //如果找到了满足条件的数对,我们分配内存来存储它们的下标 
                if (result == NULL) {  
                    *returnSize = 0;  //这段代码检查输入参数的有效性。如果numbers数组为空、数组大小小于2,或者returnSize指针为空,函数会立即返回NULL,并将*returnSize设置为0
                    return NULL;  
                }  
                result[0] = i + 1; // 下标从1开始计数  
                result[1] = j + 1;  
                *returnSize = 2;  
                return result;  //如果内存分配成功,我们将数对的下标存储在result数组中,并将*returnSize设置为2,然后返回result数组
            }  
        }  
    }  
  
    // 没有找到满足条件的两个数  
    *returnSize = 0;  
    return NULL;  
}  
  
int main() {  
    int numbers[] = {2, 7, 11, 15};  
    int target = 9;  
    int returnSize;  
  
    int* result = two_sum_without_hash(numbers, sizeof(numbers) / sizeof(numbers[0]), target, &returnSize);  
  
    if (result != NULL) {  
        printf("Indices of the two numbers that sum up to %d are: %d and %d\n", target, result[0], result[1]);  
        free(result); // 释放分配的内存  
    } else {  
        printf("No two numbers found that sum up to %d\n", target);  
    }  
  
    return 0;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/395462.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年及以后在您的项目中使用的最佳CSS框架

在过去几年中&#xff0c;CSS已经取得了长足的进步。在过去&#xff0c;您可能会使用CSS来创建依赖于HTML表格和CSS浮动作为其布局系统的简单外观的Web应用程序。而现在&#xff0c;您可以设计复杂的交互式用户界面&#xff0c;具有优雅的设计。 尽管CSS变得越来越先进&#x…

前端(二十七)——封装指南:Axios接口、常用功能、Vue和React中的封装技术

&#x1f60a;博主&#xff1a;小猫娃来啦 &#x1f60a;文章核心&#xff1a;前端封装指南&#xff1a;Axios接口、常用功能、Vue和React中的封装技术 本文目录 小引前端封装以真实项目举个例子 Axios接口封装常用功能封装封装 Vue中的封装技术React中的封装技术Vue和React封装…

Java+Vue+MySQL,国产动漫网站全栈升级

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

IDEA报错:无法自动装配。找不到 ... 类型的 Bean。

今天怎么遇见这么多问题。 注&#xff1a;似乎只有在老版本的IDEA中这个报错是红线&#xff0c;新版的IDEA就不是红线了&#xff08;21.2.2是红的&#xff09; 虽然会报错无法自动装配&#xff0c;但启动后仍能正常执行 不嫌麻烦的解决做法&#xff1a;Autowired的参数reques…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(一)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型&#xff0c;由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”&#xff08;そら sora&#xff09;&#xff0c;即天空之意&#xff0c;以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

Android开发的调试利器-BlueStacks

工欲善其事&#xff0c;必先利其器&#xff0c;作为Android开发的模拟器选择&#xff0c;还是费了好一阵工夫。开始采用Android Studio自带的模拟器&#xff0c;因为发现其支持的类型极其丰富&#xff0c;于是总想将其折腾好&#xff0c;但结果是浪费了很多时间&#xff0c;仍然…

Stable Diffusion ComfyUI安装详细教程

上一篇文章介绍了sd-webui的安装教程&#xff0c;但学习一下ComfyUI这种节点流程式的对理解AI绘画有较大帮助&#xff0c;而且后期排查错误会更加方便&#xff0c;熟练后用这种方式做AI绘画可玩性会更多。 文章目录 一、安装包说明二、安装文件介绍三、安装步骤四、汉化五、云主…

【Java】小白必须要懂的关于反射的极简基础知识

目录 反射概念 JVM基础 Class对象之源&#xff1a;类的加载过程 反射获取Class对象的三种方法 Class对象的三种常用方法 三种常用方法对应的后续调用 用反射来实现命令执行 反射概念 反射&#xff08;Reflection&#xff09;是指在程序运行时可以检查、获取和修改类的…

如何快速部署幻兽帕鲁私人服务器:适合零基础小白的指南

看了许多关于如何部署服务器的&#xff0c;大部分都是要买阿里云或者腾讯云的服务器并且至少四核以上才能保证流畅运行。 但是对于想搭建私服但又没有技术的小白&#xff0c;确实是有点难度了。购买云服务器后还要配置服务器&#xff0c;配置OpenVPN、PalServer&#xff0c;doc…

纯净住宅代理有何优势?为什么要用它?

随着互联网的快速发展&#xff0c;代理服务器已经成为许多在线活动的关键组成部分&#xff0c;从数据挖掘到网络安全。然而&#xff0c;随着技术的不断发展&#xff0c;住宅IP代理正崭露头角&#xff0c;因其在保障隐私、提升性能和应对封锁方面的卓越优势而备受瞩目。本文将深…

瑞_23种设计模式_代理模式

文章目录 1 代理模式&#xff08;Proxy Pattern&#xff09;1.1 介绍1.2 概述1.3 代理模式的结构 2 静态代理2.1 介绍2.2 案例——静态代理2.3 代码实现 3 JDK动态代理★★★3.1 介绍3.2 代码实现3.3 解析代理类3.3.1 思考3.3.2 使用 Arthas 解析代理类3.3.3 结论 3.4 动态代理…

常用的激活函数python代码-简洁版-想画好看的激活函数图的第一步

激活函数python代码 最近在写毕业论文&#xff0c;其中需要介绍一些基础的激活函数&#xff0c;然后如果直接用matplot绘图其绘图结果不是矢量图&#xff0c;而且不能像Origin一样修改线条&#xff0c;坐标轴之类的&#xff0c;但是如果像用Origin画就需要生成横纵坐标的数据然…

数据结构day1

定义一个学生结构体&#xff0c;包含结构体成员&#xff1a;身高&#xff0c;姓名&#xff0c;成绩&#xff1b;定义一个结构体数组有7个成员&#xff0c;要求终端输入结构体成员的值&#xff0c;根据学生成绩&#xff0c;进行冒泡排序。 #include <stdio.h> #include &l…

贪心算法之合并区间

“任世界多宽广&#xff0c;停泊在这港口~” 区间问题&#xff0c;涉及到最多的就是 取交集 和 并集的概念。我们使用C排序算法后&#xff0c;其默认规则就是按照 “左排序”进行的。因而&#xff0c;我们实质上注意的是每一个区间的 右端点&#xff0c;根据题目要求&#xff…

基于AI的RAG需要真正面对商业化场景和落地的几大致命陷井

背景 人人在谈AI&#xff0c;可是AI落地在哪&#xff1f;AI到底可以给我们带来什么&#xff1f; 随着流量红利模式的衰退、AI犹如一针强心剂一样打给了整个IT领域。 AI作图-漂亮、惊艳、快&#xff1b;AI视频-人人可以成为短视频专家&#xff1b;AI辅助编程-1人顶7人&#x…

安全基础~通用漏洞6

文章目录 知识补充XXE文件包含CTFshow闯关 知识补充 XML格式&#xff08;一种数据传输格式&#xff0c;现在被JSON取代&#xff09;&#xff1a;https://xz.aliyun.com/t/6887 XML文档结构包括XML声明、DTD文档类型定义&#xff08;可选&#xff09;、文档元素 DTD 定义合法的…

C++与C的区别

1、C不允许出现多个同名的全局变量 2、C中const修饰的变量可以通过指针修改 3、C语言&#xff1a;NULL&#xff0c;C中&#xff1a;nullptr C语言中NULL通常是0值&#xff0c;只报警告 C中nullptr的左值一定得是指针类型 4、C新增“引用” 引用&#xff1a;取别名 数据…

java常用应用程序编程接口(API)——Object类概述及常用方法

前言&#xff1a; Object是一个非常重要的语句&#xff0c;整理下心得。打好基础&#xff0c;daydayup! Object类 什么是Object类&#xff1f; Object类是java中所有类的最终类。每一个类都默认继承Object类&#xff0c;因此java中的所有类中的对象都可以直接使用Object类中提…

产品经理学习-产品运营《流程管理》

如何进行流程管理 信息可视化 甘特图-流程管理思维导图-方案讨论原型图-活动文档 明确责任制 分工明确&#xff0c;关键环境有主负责人通过时间倒推督促管理 沟通技巧 明确共同利益以结果激励做好信息同步 如何进行监控活动效果 监控活动的效果是要监控数据 活动每个环境的…

详解4大C语言内存函数【超详细建议点赞收藏】

目录 1. memcpy----内存拷贝1.1 函数介绍1.2 函数使用1.3 模拟实现 2. memmove----重叠内存的数据拷贝2.1 函数介绍2.2 函数使用2.3 模拟实现 3. memcmp----内存比较3.1 函数介绍3.2 函数使用 4.memset----内存设置4.1 函数介绍4.2 函数使用 注意&#xff1a;以下4个内存函数在…
最新文章