I would do this the other way around from current comments/answer. I am assuming your scenario changes are where the flood values, not the buildings, change.
Convert your buildings to raster with Polygon to Raster, using your flood raster as the extents and matching cell size/row column count/etc. There is some risk that a resulting cell won't be classed as building even if the polygon line touches it, particularly depending on cell size and how much of the cell is contained within the polygon. At that point you can either double/quadruple the cell counts (and reduce the size, thereby increasing the resolution) and then resample it back down with a max value method or something. Basically you have to keep in mind no matter which way you go, converting between raster and vector will lose accuracy somewhere by either over or under inclusion.
Once you have your buildings as a raster, which you only have to do once, you can use the Zonal Statistics tool to get the max value in each zone (buildings). Note that you can use this tool directly with your buildings as polygons, but it does an internal conversion from vector to raster that you have no control over (so you have even less of an idea if a cell touches a building but isn't fully within, which way does that cell get counted). You could also buffer your polygons by maybe half cell size and use those as the zones. Again, you're picking which side you want to error on (inclusion or exclusion).
If you really want to be precise about it and ensure you include any raster cell that touches your building, you'll need to convert your raster to a vector grid. And because it's a float and not an int you either have to multiply the raster by some power of ten, run it through the Int tool, and then divide the value back again once converted to raster, or do it manually. Manually means creating a fishnet identical to your raster including label points, then using those points to sample the raster, then join field-ing the points to the fishnet cells to transfer the flood depth value, and then doing the intersect/dissolve approach that Adam outlines.
You'll have to make a choice between fewer steps (single tool run with zonal stats and building vectors as direct zone input) with perhaps less accuracy, or a more complicated process requiring more steps (and therefore a model/script to be easily replicable).